NSTreeNode mutableChildNodes не работает как следует? - PullRequest
1 голос
/ 29 ноября 2011

Я совершенно сбит с толку, почему это не работает.Я пытаюсь вставить новый NSTreeNode в изменяемый массив дочерних узлов.Вот код:

NSTreeNode *newNode = [[NSTreeNode alloc] init];
NSMutableArray *children = [anExistingParentTreeNode mutableChildNodes];
[children addObject:newNode];

При выполнении я получаю всевозможные ошибки:

  • - [NSCFSet initWithObjects: count:]: попытка вставить нулевой объект в объекты [0]
  • - [NSTreeNode _tearDownObserving]: нераспознанный селектор отправлен на экземпляр 0x2000bff40
  • Серьезная ошибка приложения.Во время обработки изменений базовых данных было обнаружено исключение: - [NSTreeNode _tearDownObserving]: нераспознанный селектор, отправленный экземпляру 0x2000bff40 с userInfo (null)

Похоже, ошибки связаны с KVO.Кто-нибудь сталкивался с такими ошибками, используя mutableChildNodes?Приветствуется любая помощь.

Примечание. Базовый NSTreeController привязан к основным данным через контекст управляемого объекта.

Ответы [ 2 ]

1 голос
/ 30 ноября 2011

Может быть, вы неправильно инициализировали объект newNode?

Единственный init метод, определенный для класса:

- (id)initWithRepresentedObject:(id)modelObject

Когда вы используете init, вы просто используете реализацию по умолчанию, унаследованную от NSObject.

Обычно у класса есть один или несколько обозначенных инициализаторов, но в случае NSTreeNode я не вижу, чтобы это было указано в документации. Однако, поскольку для класса определен только один инициализатор, и нет методов установки для установки представленного объекта на более позднем этапе, я бы пришел к выводу, что initWithRepresentedObject: является назначенным инициализатором класса.

Об инициализаторах: http://developer.apple.com/library/ios/#documentation/general/conceptual/DevPedia-CocoaCore/MultipleInitializers.html

0 голосов
/ 03 декабря 2011

См. Мой последний комментарий к исходному вопросу.

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