ibireme / YYCache

High performance cache framework for iOS.
MIT License
2.37k stars 505 forks source link

在个人中心里面清空了所有的Cache,但在进入收藏的时候,个人资料缓存还是没有清空,请问有没可以立即同步的选项 #46

Closed CodeRabbitYu closed 8 years ago

CodeRabbitYu commented 8 years ago

在个人中心里面清空了所有的Cache,但在进入收藏的时候,个人资料缓存还是没有清空,请问有没可以立即同步的选项? 我用YYCache做了登录之后的个人资料,cookie的保存. 然后,我在每次请求数据的时候,将保存的数据加入到请求头(cookie)里面,用来验证用户. 但我在别的页面清楚所有的Cache之后(RemoveAll),再请求数据发现,并没有清除掉, 用户信息还是保留着. 所以,我想问一下有没有立即执行的选项.

ibireme commented 8 years ago

removeAllObjects 应该会立刻清空所有数据啊。。 你也可以试试 removeAllObjectsWithBlock 在回调里接收通知。

caihua commented 8 years ago

然而写了这么多文档,却没写个示例代码。

CodeRabbitYu commented 8 years ago

又遇到一个问题.我存了一个BOOL值(0),取出来之后变成(1)了,强转也不行.

ibireme commented 8 years ago

接口很简单,所以没写单独的 Demo,Benchmark 里面算是有些示例代码吧。

BOOL 值是怎么存的,具体代码是什么样?强转是什么。。

CodeRabbitYu commented 8 years ago

// 判断微信是否安装 BOOL state = [WXApi isWXAppInstalled]; YYCache *weixin = [[YYCache alloc] initWithName:@"WeiXinCache"]; [weixin setObject:@(state) forKey:@"WeiXinState"];

ibireme commented 8 years ago
BOOL state = NO;
YYCache *weixin = [[YYCache alloc] initWithName:@"WeiXinCache"];
[weixin setObject:@(state) forKey:@"WeiXinState"];
NSNumber *value = [weixin objectForKey:@"WeiXinState"];
NSLog(@"%@",value); //0

不能复现。

另外,为什么这个值要放到缓存里?缓存不是用在这种场景下的啊。。

CodeRabbitYu commented 8 years ago

这样存之后和,,在别的页面 [weixin objectForKey:@"WeiXinState"],取到的是1

ibireme commented 8 years ago

不能复现啊。。

另外,[[YYCache alloc] initWithName:] 这个方法,应该放在全局单例里,而不是每次用的时候才创建。如果同名的 Cache 创建两次会产生不稳定的状态,这个在注释文档里也写了。还有 [WXApi isWXAppInstalled] 这个值不应该,也没必要缓存。