2011-12-16 3 views
0

Я пытаюсь преобразовать проект Xcode 3 (iOS 4.3) в ARC в Xcode 4.2 (iOs 5), но когда я пытаюсь чтобы предварительно проверить проект, я получаю кучу разных ошибок, которые мне нужно исправить, прежде чем двигаться дальше. Одним из таких ошибок является следующее сообщение:Основные данные: «Тип приемника, например, не объявляет метод с селектором ...»

* "тип приемника„Назначение“, например, сообщения, не объявляет метод с селектором„градуируемых“*,

где Назначение - основной объект, управляемый данными, и gradable является собственностью ...

Вот строка, где я получаю сообщение об ошибке:

if ([[[[assignment gradable]description]description] isEqualToString:@"true"]) { 

И здесь для лучшего понимания:

for(int i = 0; i < [assignmentArrays count]; i++) { 
     for (Assignment* assignment in [assignmentArrays objectAtIndex:i]) { 
      if ([[[[assignment gradable]description]description] isEqualToString:@"true"]) { 
       [[gradableAssignmentsArray objectAtIndex:i] addObject:assignment]; 
      } 
     } 
    } 

[assignmentArrays release]; 

Итак, если я правильно понимаю, мне нужно объявить метод поэтому я могу использовать его здесь ... но будучи основным объектом данных, я немного запутался в этом ... Я провел некоторое исследование, но не смог найти ничего связанного с основными данными ..: |

Заранее благодарен! :)

+0

Вы пробовали 'assign.gradable'? – jcm

+0

@jcm Да, я ... не работал ... спасибо за подсказку, хотя! ;) – Johan

ответ

2

Do [assignment valueForKey:@"gradable"] Если это NSManagedObject, у вас нет подкласса, который должен сделать компилятор более тихим, но если у этого объекта нет ключа @ "gradable", у вас будет исключение времени выполнения и произойдет сбой , (вы также можете использовать это в подклассе)
Если вы подклассифицировали NSManagedObject и хотите использовать что-то еще, что valueForKey (поскольку строка более подвержена ошибкам), объявите свойство в этом подклассе, чтобы компилятор мог его найти. В .m вы не использовали бы @synthesis в этом случае, но ключевое слово @dynamic, которое в основном говорит компилятору, у меня нет реализации для этого свойства, но во время выполнения вы его получите. И это будет предоставлено Core Data.

+0

Спасибо @VinceBurn, я попробую, когда вернусь на свой компьютер сегодня вечером ... Я дам вам знать ... – Johan

Смежные вопросы