Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 绑定未更新。Can';我看不出是什么';这是不对的_Objective C_Cocoa_Nsuserdefaults_Cocoa Bindings_Key Value Observing - Fatal编程技术网

Objective c 绑定未更新。Can';我看不出是什么';这是不对的

Objective c 绑定未更新。Can';我看不出是什么';这是不对的,objective-c,cocoa,nsuserdefaults,cocoa-bindings,key-value-observing,Objective C,Cocoa,Nsuserdefaults,Cocoa Bindings,Key Value Observing,这是我的设置: 在我的应用程序委托中,我注册默认设置 在我的首选项nib中,我已将一个复选框绑定到具有控制器键值和模型键路径测试的共享用户默认值 在我的自定义对象中,我有一个属性BOOL test,并在它的init方法中调用它 [self bind: @"test" toObject: [NSUserDefaults standardUserDefaults] withKeyPath: @"values.test" options: nil]; 在同一个对象中,我有@属性NSString*te

这是我的设置:

在我的应用程序委托中,我注册默认设置

在我的首选项nib中,我已将一个复选框绑定到具有控制器键
和模型键路径
测试
的共享用户默认值

在我的自定义对象中,我有一个
属性BOOL test
,并在它的
init
方法中调用它

[self bind: @"test" toObject: [NSUserDefaults standardUserDefaults] withKeyPath: @"values.test" options: nil];
在同一个对象中,我有
@属性NSString*testString
,还有一个
+(NSSet*)keypathsforvaluesafectingteststring
,它返回一个带有
@“test”
的NSSet

我子类化了
-(NSString*)testString
,但它从未被调用

我错过什么了吗


提前感谢。

找到了一个解决方案:如果我使用
[NSUserDefaultsController sharedUserDefaultsController]
而不是
[NSUserDefaultsStandardUserDefaults]
,它会起作用。

是的。记住绑定是AppKIT的一部分,所以你需要一个AppKIT的绑定感知对象,而不是一个基础绑定不知道的对象。NSUDC是前者;NSID是后者。