Самый простой метод получения NSArray для NSManagedObject - PullRequest
0 голосов
/ 21 апреля 2011

Это очень простой вопрос, но я изо всех сил пытаюсь найти ответ. У меня есть NSManagedObject с именем iSelectedObject .

Предположим, что позже у меня есть условие, которое вытягивает representedObject из NSOutlineView или selectedObjects из NSArrayController, в зависимости от (не относящихся к этому вопросу) критериев, тогда мне нужно запустить метод, который требует NSManagedObject, который нужно накормить. Это прекрасно работает, когда я кормлю representedObject от NSOutlineView - это естественно NSManagedObject, когда выбрано таким образом. Однако, если я беру selectedObjects моего NSArrayController, это NSArray, и я не могу передать его своему методу.

Я знаю, что NSArray может содержать NSManagedObjects, и чувствую, что решение может быть таким же простым, как переход на один уровень глубже в мой NSArray или что-то подобное, но как бы я скормил свой NSArray своему методу, который требует и NSManagedObject. Должен ли я извлечь / преобразовать это каким-то образом?

(В качестве справки: причина, по которой я даже пытался передать метод NSArray, заключается в том, что он и альтернатива NSManagedObject содержат в себе одни и те же данные. Т.е. если я выполняю две функции точно То же самое с ожидающим NSArray и ожидающим NSManagedObject, они работают отлично. Единственная причина, по которой у меня есть отдельные варианты выбора NSArray или NSManagedObject, заключается в том, что по умолчанию это selectedObjects и representedObject выплюнуть соответственно. Если бы я мог вытащить одно или другое для обоих, это было бы идеальным решением, но я не уверен, как это сделать.)

Ответы [ 2 ]

1 голос
/ 21 апреля 2011

Если NSArray содержит только один объект, вы можете просто вытащить NSManagedObject из NSArray с помощью

[array lastObject];

Если имеется несколько объектов, запустить массив и проверить каждый объект с помощью

[object isKindOfClass:[NSManagedObject class]];

В любом случае, это даст вам NSManagedObject, который вы можете использовать для вашего метода.

0 голосов
/ 23 апреля 2011

Мне удалось изменить метод так, чтобы он ожидал тип id, а не NSManagedObject, и это перестало жаловаться.

...