Не удается получить доступ к отношениям «один ко многим» в CoreData с помощью Swift

Свифт заставил меня наконец попробовать IOS, но у меня проблемы с CoreData. Мне не повезло, пытаясь получить доступ к моим свойствам, которые сопоставляются с моими отношениями «один ко многим».

У меня есть отношения «один ко многим», настроенные как таковые:

@objc(Project) class Project: NSManagedObject { @NSManaged var name:String @NSManaged var scribbles : Array<Scribble> } @objc(Scribble) class Scribble: NSManagedObject { @NSManaged var notes:String @NSManaged var project:Project } 

Я беру свои данные следующим образом:

 let request = NSFetchRequest(entityName: "Projects"); request.returnsObjectsAsFaults = false; request.includesSubentities = true; var results:NSArray = context.executeFetchRequest(request, error: nil); for project in results { let thisProject:Project = project as Project; projects.append(thisProject); } 

Но всякий раз, когда я пытаюсь перебирать надписи для проекта, используя for..in, я получаю это исключение:

 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Scribble count]: unrecognized selector sent to instance 

Когда я печатаю на моем объекте проекта Похоже, что я что-то возвращаю, я просто не знаю, что с ним делать.

 <Project: 0xb48e010> (entity: Projects; id: 0xb48d340 <x-coredata://CDEFAC19-4D9E-426D-B0CC-EFFEE9053707/Projects/p3> ; data: { name = Larry; scribbles = "0xb48e7b0 <x-coredata://CDEFAC19-4D9E-426D-B0CC-EFFEE9053707/Scribbles/p3>"; 

})

  • Какова наилучшая практика хранения сложной структуры данных в основных данных на iOS?
  • Как изменить порядок таблиц в таблице с помощью fetchedresultscontroller в swift?
  • Когда использовать NSMainQueueConcurrencyType от Core Data?
  • данные быстрой синхронизации данных ядра базы данных mysql
  • iOS 8 - Создание временных NSManagedObjects
  • Отличительная выборка Core-data дает пустой массив
  • Фоновый управляемый объект Контекст Ошеломляет анимацию пользовательского интерфейса
  • MagicalRecord: несколько баз данных
  • One Solution collect form web for “Не удается получить доступ к отношениям «один ко многим» в CoreData с помощью Swift”

    Из исключения, которое бросается, кажется, вы пытаетесь выполнить итерацию по коллекции, но вместо этого project.scribbles возвращает коллекцию, возвращая экземпляр Scribble.

    Это заставляет меня думать, что ваши отношения настроены как «на единицу» в моделировании данных. Убедитесь, что вы установили отношение «для многих». Вы можете сделать это, выбирая отношения, и в окне Data Model Inspector будет указан параметр type – по умолчанию он установлен на «один».

    Interesting Posts
    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.