У меня есть NSTableView в плавающем окне, которое динамически привязано к свойству arrangedObjects
экземпляра NSArrayController, который соответствует самому верхнему окну документа с кодом следующего :NSTableColumn привязано к NSArrayController переднего окна с исключениями при изменении окна
NSArrayController *documentSpecificArrayController; // properly set elsewhere
NSTableColumn *tableColumnToBind; // properly set elsewhere
[tableColumnToBind unbind:NSValueBinding];
[tableColumnToBind bind:NSValueBinding
toObject:documentSpecificArrayController
withKeyPath:@"arrangedObjects"
options:[NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES],
NSContinuouslyUpdatesValueBindingOption,
nil]];
Пока представленный массив/вид таблицы пуст, все работает нормально; все различные операции над табличным представлением/представленным массивом в одном документе работают нормально. Если кто-то переключается из документа с непустым представленным массивом в документ, для которого представленный массив пуст, генерируется бесконечный поток из *** -[NSCFArray objectAtIndex:]: index (0) beyond bounds (0)
исключений.
Я пропустил что-то, что мне нужно сделать, чтобы чисто отрубить привязку при переключении окон? Что-то другое? (Есть ли какая-то конкретная информация, которую я пропустил, которая поможет диагностировать мою ошибку?)
«правильно установлен в другом месте» [править] :-) –
@Joshua Nozzi: Я знал * кто-то спросил бы. :) Контроллер массива является свойством класса документа, который является делегатом нового верхнего окна, поэтому он получен таким образом; столбец таблицы содержится в представлении таблицы, которое подключается к IBOutlet класса, в котором происходит этот код. Я проверял, независимо от этого исключения-бросания, что обе переменные установлены и меняются, как ожидалось. – Isaac