У меня есть собственность
@property (strong, nonatomic) NSArray *techniqueSetObjects;
Отображается как пользовательская привязка в +initialize
+ (void)initialize {
[self exposeBinding:@"techniqueSetObjects"];
}
В делегате приложения applicationDidFinishLaunching:
он привязывается к NSArrayController.arrangedObjects
[self.futureBoxesController bind:@"techniqueSetObjects" toObject:self.techqSetController withKeyPath:@"arrangedObjects" options:nil];
Контроллер массива, о котором идет речь, работает в режиме Core Data Entity, он получает свое содержимое от selection
другого контроллера массива (с путем, указывающим на связь в главной сущности).
Тогда у меня есть пользовательский установщик для свойства techniqueSetObjects
:
- (void)setTechniqueSetObjects:(NSArray *)newTechqSetObjects {
[self willChangeValueForKey:@"techniqueSetObjects"];
techniqueSetObjects = [newTechqSetObjects copy];
[self didChangeValueForKey:@"techniqueSetObjects"];
NSLog(@"New count: %ld", [techniqueSetObjects count]);
}
В большинстве случаев все работает как положено, и сразу после запуска приложения я вижу следующие строки журнала:
New count: 0
New count: 2
Но иногда (без видимой причины) сеттер вызывается 3 раза с одним и тем же новым массивом, например так:
New count: 0
New count: 2
New count: 2
New count: 2
Не сказать, что это приводит к значительному снижению производительности или что-то в этом роде, просто меня раздражает, что я не знаю, что именно происходит. Это нормальное поведение для привязок? Я подозреваю, что это может быть ранним признаком какой-то другой более серьезной проблемы, о которой я пока не знаю.