在我的界面中,我有一個NSTextField
誰的value
綁定到NSArrayController's
selection.selectedType.title
。所有NSArrayController's
對象都是自定義對象各有兩種方法:KVO:無法刪除觀察者
- (MYType *)selectedType;
- (void)setSelectedType: (MYType *)type;
的不有伊娃selectedType
。但是,他們確實有一個iVar,持有所有MYType
對象。該代碼歸結爲:
- (MYType *)selectedType
{
if (someIndex == 0)
return [types objectAtIndex: 0];
else
return [self typeWithIndex: someIndex];
}
- (void)setSelectedType: (MYType *)type
{
someIndex = [type index];
}
MYType
對象得到了NSString *title
伊娃與相應@property
和synthesize
。
每當我打電話setSelectedType:
,變化是在NSTextField
立即可見,一切似乎工作,但我得到一個日誌消息說:
無法刪除觀察員NSArrayController的0x141160爲重點 路徑「selectedType。標題「,最可能的原因是 ,因爲在沒有發送適當的KVO通知的情況下更改了」selectedType「鍵值的 。檢查MY35類的KVO符合性 。
我試圖封裝setSelectedType:
法willChangeValueForKey:
和didChangeValueForKey:
,然後我仍然有一個日誌消息,但不同的一個:
無法刪除觀察員NSKeyValueObservance 0x1c7570爲重點 路徑「稱號」,從MYType 0x1a4be0,因爲它未註冊爲觀察員 。