
是否可以将KVO用于这样的全局变量,还是有其他方法可以实现类似的效果?
我添加了我的app delegate作为currentUser的观察者:
[self addobserver:self forKeyPath:@"currentUser" options:NSkeyvalueObservingOptionNew context:nil];
–
-(voID)observeValueForKeyPath:(Nsstring *)keyPath ofObject:(ID)object change:(NSDictionary *)change context:(voID *)context{ if ([keyPath isEqualToString:@"currentUser"]) { NSDictionary * userDict = [currentUser dictionaryRepresantation]; [UserDefaults setobject:userDict forKey:@"USER_DATA"]; [UserDefaults synchronize]; }} 但这并没有被称为.
解决方法 您无法为全局变量添加观察者,KVO仅适用于对象的属性.您可以将全局变量包装在应用程序委托中的getter / setter对中,但之后您也可以使用常规属性,因为只有使用setter的更改才会触发KVO通知.此外,你不应该使用全局变量,即使你把它们伪装成’单身人士’也不行.
总结以上是内存溢出为你收集整理的objective-c – 可以使用KVO来观察全局变量吗?全部内容,希望文章能够帮你解决objective-c – 可以使用KVO来观察全局变量吗?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)