我目前有一个颜色井,可以跟踪保存在 NSUserDefaults 中的颜色。它绑定到一个 NSUserDefaultsController。但是,我也想听听颜色的变化,以便我可以相应地更新我的视图。因此,除了绑定之外,我还向我的首选项控制器添加了一个目标/动作到颜色以及发布带有颜色的通知。
1)同时拥有目标/动作和绑定有多安全?是否有可能会滞后或者它们可能不同步并报告不同的值?
2)当我在我的 IBAction 方法中获取颜色时,我应该从用户默认值还是从颜色中获取它?
这是我的 colorChanged: 操作:
- (IBAction)colorChanged:(id)sender
{
NSDictionary *userInfo = [NSDictionary dictionaryWithObject:[colorWell color] forKey:@"color"];
[notificationCenter postNotificationName:@"ColorChangedNotification" object:self userInfo:userInfo];
}
所以我应该这样做:
[NSKeyedUnarchiver unarchiveObjectWithData:[[NSUserDefaults standardUserDefaults] objectForKey:@"color"]];
或者:
[colorWell color];
谢谢!