Свойство не найдено на объекте типа - PullRequest
1 голос
/ 06 сентября 2011

У меня простой вопрос:

У меня есть подкласс NSManagedObject, который я использовал в течение некоторого времени, и он работал отлично.Сегодня я добавил новое свойство с соответствующим iVar.Свойство является простым (неатомным, сохраняющим) NSString *.И, как обычно, я добавил @synthesize к свойству, чтобы генерировать функции установки и получения.Однако я не могу использовать новое свойство !!!Я продолжаю получать сообщение об ошибке «свойство не найдено для объекта типа», и моя сборка завершается неудачей.

Вот несколько фрагментов кода, которые прояснят ситуацию:


    //import the core data header first CoreData/CoreData.h

    @interface Contact :  NSManagedObject

    {
       NSString *contactID;
       NSString *firstName;
       NSString *myDevMod;
    }

    @property (nonatomic,retain) NSString *contactID;
    @property (nonatomic,retain) NSString *firstName;
    @property (nonatomic,retain) NSString *myDevMod;

    @end

и соответствующий.Реализация m:

    #import "Contact.h"

    @implementation Contact 

    @synthesize contactID, firstName, myDevMod;

и код, который использует класс Contact:

    #import "Contact.h" //at the start

    Contact *aContact = [[Contact alloc] init];
    aContact.contactID = someId; //works perfectly fine
    aContact.firstName = someName; //works perfectly fine
    aContact.myDevMod = @""; //THIS IS WHERE THE ERROR OCCURS!!
    [aContact doSomethingHere];
    [aContact release];

Как вы думаете, в чем может быть ошибка ??

Заранее спасибо заваша поддержка.

Ответы [ 3 ]

0 голосов
/ 08 ноября 2012

У меня была точно такая же проблема прошлой ночью.Мне потребовалось около 5 часов, чтобы это исправить.Моими первыми попытками было снова создать классы модели с помощью меню Editor -> Create NSManagedObject Subclass ...

Но это не помогло.Даже если я удалил классы заранее, Xcode не распознал свойства.Я также удалил модель и перестроил ее с тем же именем.И снова создал подклассы NSManagedObject.Не помоглоЗатем я удалил модель и MOS снова и собрал его с нуля!Но с разными именами!Мне снова потребовалось много времени, чтобы изменить мой код, но после этого все казалось нормальным.Теперь я могу добавлять, изменять и удалять атрибуты в модели и свойства NSManagedObject Subclasses и XCode распознает их снова.

Но мальчик, это почти сводило меня с ума !!!И я до сих пор не знаю, что случилось!

0 голосов
/ 06 января 2013

По моему опыту, это не модель или объекты, которые нужно воссоздать.Большую часть времени вы можете воссоздать файл, в котором вы работаете. Создайте новый NSView из каждого файла .h и .m и скопируйте информациюв новый файл, и он будет работать.

0 голосов
/ 06 сентября 2011

Странно, сайт не позволяет мне добавлять комментарии так:

Комментарий: Звучит странно. Первое, что я бы попробовал, это удалить строки @property и строку @synthesize - чтобы методы получения и установки создавались автоматически. Также попробуйте: aContact.myDevMod = someName; чтобы увидеть, действительно ли это работает - может пролить свет.

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