Neden bir UITableViewController
örneğinin editing
özelliğini gözlemleyemiyorum?Bir UITableViewController düzenleme özelliğinin gözlenmesi
Ben aşağıdaki kodu kullanıyorum:
[self addObserver:self
forKeyPath:@"editing"
options:(NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld)
context:NULL];
Ve yöntemini uyguladık:
- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context
... ama observeValueForKeyPath
yöntem zaman bu değer değişiklikleri asla denir. Apple'ın Ensuring KVC Compliance bölümüne göre
:
-<key>
adında bir yöntemi uygulamak: Bir öznitelik veya bire bir ilişki vardır özellikleri için, bu sınıf gerektirir
-is<Key>
veya örnek değişken<key>
veya_<key>
.- Özellik değiştirilebilir ise, o zaman
-set<Key>:
uygulamalıdır. -set<Key>:
yönteminin uygulamanız doğrulama yapmamalıdır.- Doğrulama anahtar için uygunsa, sınıfınız
-validate<Key>:error:
'u uygulamalıdır.
editing
özellik için dokümantasyon, gibi tanımlanır belirtiyor: Bu özellik değişken olmadığından
@property(nonatomic, getter=isEditing) BOOL editing
, sadece mermi noktası uygun olmalıdır ilkini edilir (yani Örneğin, bir -is<Key>
yöntemi tanımlanmıştır. Buna, mülkün beyanına bakarak ve tanımlanmış bir isEditing
yöntemi olduğunu fark ederek, bununla uyumlu olduğunu görebilirsiniz. Bu nedenle, Önemli Değer Gözlemleme uyumlu olmalıdır. Nasıl oluyorda çalışmıyor?
Sadece meraktan dolayı, 'setEditing: animated:' uygulanmasının tersine, neden mülkleri gözlemlemeye çalışıyorsunuz? –
@Gordon: Bu yöntemle ilgili hata ayıklama nedenleriyle. – Senseful