слушатель и наблюдатель по размеру NSMutableArray - PullRequest
2 голосов
/ 12 октября 2011

Можно ли сделать что-то подобное в target-C, сказать, что мой массив имеет значение X, тогда я хочу, чтобы это вызвало функцию Y, когда это произойдет? Так слушатель подсчета NSArray?

Ответы [ 2 ]

1 голос
/ 12 октября 2011

Полагаю, вы могли бы создать наблюдателя, который прослушивает изменения в массиве. После его запуска вы можете проверить размер массива и вызвать метод Y, если условие выполнено.

0 голосов
/ 13 октября 2011

Вы можете написать протокол (например, назвать его MutableArrayDelegate), а затем расширить NSMutableArray (обязательно вызовите [super ...] соответственно), вызывая методы делегата, когда происходят определенные события.

Например,чтобы добавить прослушиватель при каждом добавлении объекта:

@protocol MutableArrayDelegate
- (void)mutableArrayDidAddObject:(NSMutableArray *)mutableArray;
@end

@interface ObservableMutableArray : NSMutableArray
@property (nonatomic, assign) id<MutableArrayDelegate> delegate;
@end

@implementation ObservableMutableArray
@synthesize delegate;

- (void)addObject:(id)anObject
{
     [super addObject:anObject];
     [delegate mutableArrayDidAddObject:self];
}
@end

Затем можно прослушивать события, назначив делегата вашему подклассу и реализовав протокол.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...