Objective c 绑定和目标/操作?

Objective c 绑定和目标/操作?,objective-c,cocoa,binding,appkit,Objective C,Cocoa,Binding,Appkit,我目前有一个颜色井,它跟踪保存在NSUserDefaults中的颜色。它绑定到NSUserDefaultsController。但是,我也希望听到颜色的变化,以便相应地更新视图。因此,除了绑定之外,我还向颜色井添加了一个目标/操作到我的首选项控制器,该控制器会发布带有颜色的通知 1) 同时拥有目标/操作和绑定有多安全?是否有可能延迟或不同步并报告不同的值 2) 当我在IBAction方法中获取颜色时,我应该从用户默认值还是从颜色井获取颜色 以下是我的更改颜色:操作: - (IBAction)co

我目前有一个颜色井,它跟踪保存在NSUserDefaults中的颜色。它绑定到NSUserDefaultsController。但是,我也希望听到颜色的变化,以便相应地更新视图。因此,除了绑定之外,我还向颜色井添加了一个目标/操作到我的首选项控制器,该控制器会发布带有颜色的通知

1) 同时拥有目标/操作和绑定有多安全?是否有可能延迟或不同步并报告不同的值

2) 当我在IBAction方法中获取颜色时,我应该从用户默认值还是从颜色井获取颜色

以下是我的更改颜色:操作:

- (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"]];
或:

谢谢

同时具有目标/操作和绑定是安全的。如果使用NSNotificationCenter发布通知,则通知将同步传递给观察者。(有一个明显的警告:这不是魔术——如果观察者A在收到通知时向观察者B发送消息,观察者B将还没有收到通知。多线程增加了复杂性。)这在

直接从颜色井中读取颜色是快速的,而且可能可以通过IBAction读取。如果在应用程序启动时运行代码,最好从用户默认值中读取,因为颜色井的绑定可能尚未更新

同时具有目标/操作和绑定是安全的。如果使用NSNotificationCenter发布通知,则通知将同步传递给观察者。(有一个明显的警告:这不是魔术——如果观察者A在收到通知时向观察者B发送消息,观察者B将还没有收到通知。多线程增加了复杂性。)这在

直接从颜色井中读取颜色是快速的,而且可能可以通过IBAction读取。如果在应用程序启动时运行代码,最好从用户默认值中读取,因为颜色井的绑定可能尚未更新

1) 两者都有多安全 目标/操作和绑定?有没有 一个人可能会落后,或者他们 可能不同步并报告 不同的价值观

我认为在大多数情况下,它应该是好的。最好的方法是测试它

2) 当我在IBAction方法中获取颜色时,我应该从用户默认值还是从颜色井获取颜色

你绝对应该,绝对应该直接从颜色上得到它。为什么?保存到用户默认值时可能会出现延迟。见鬼,默认设置甚至可以在应用程序终止之前只保存一次,而且仍然可以。(好吧,这并不完全正确,但仍然如此)默认值的主要目的是在应用程序启动之间保存数据,而不是在应用程序的生命周期内

1) 两者都有多安全 目标/操作和绑定?有没有 一个人可能会落后,或者他们 可能不同步并报告 不同的价值观

我认为在大多数情况下,它应该是好的。最好的方法是测试它

2) 当我在IBAction方法中获取颜色时,我应该从用户默认值还是从颜色井获取颜色


你绝对应该,绝对应该直接从颜色上得到它。为什么?保存到用户默认值时可能会出现延迟。见鬼,默认设置甚至可以在应用程序终止之前只保存一次,而且仍然可以。(好吧,这并不完全正确,但仍然如此)默认值的主要目的是在应用程序启动之间保存数据,而不是在应用程序的生命周期内

你是如何改变颜色的???我无法在TableViewCell中为我的元素获取任何操作您如何获取颜色更改操作???我无法为TableViewCell中的元素获取任何操作
[colorWell color];