Я использую этот код, чтобы подписаться событиями с моим изменяемым массивом:Реактивное какао diferences между КВЦ и объект экземпляра
[RACObserve(self, marray) subscribeNext:^....
Я новичок в RAC, и я не понимаю, почему, например, если я использую:
NSMutableArray *keyValueCodingArray = [self mutableArrayValueForKey:@"marray"];
[keyValueCodingArray addObject:@"string"];
все работает нормально, и если я что-то добавить к моему keyValueCodingArray
, который мой marray
он реагирует на события, и если я удалить какой-либо объект из keyValueCodingArray также среагировать.
Но если использовать экземпляр напрямую, то блок RACObserve не будет работать. Я имею в виду, что он не замечает изменений в массиве:
[self.marray removeObjectAtIndex:0];
В чем разница?
oh Я просто распечатываю массив, у него есть NSKeyValueNotifyingMutableArray, кажется, мне нужно читать глубже в KVC =) –
NS [Mutable] Array не реализует [методы доступа для многих свойств] (https: //developer.apple.com/library/mac/documentation/Cocoa/Conceptual/KeyValueCoding/Articles/AccessorConventions.html#//apple_ref/doc/uid/20002174-178830-BAJEDEFB). –