Не удается получить доступ к отношениям «один ко многим» в 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>"; 

})

  • Где должен быть создан NSManagedObjectContext?
  • CoreData или SQLite для агрегации iOS
  • Операция не может быть завершена. (Ошибка какао 512.) Coredata Iphone. Файлы не могут быть скопированы в папку документов
  • Настройка отношения NSManagedObject в Swift
  • Ошибка рекурсивного сохранения CoreData ManagedObjectContext
  • iOS: естественный порядок сортировки
  • автоматически созданный подкласс NSManagedObject для логического атрибута вызывает предупреждение
  • Необязательное связывание с try? и в качестве? все еще производит необязательный тип
  • One Solution collect form web for “Не удается получить доступ к отношениям «один ко многим» в CoreData с помощью Swift”

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

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

    Interesting Posts

    Подключение SQlite3 к UITextview

    Приложение перезапускает iphone на ios 10

    Адаптивное кэширование изображений на основе доступного уровня памяти или уровня памяти iOS

    Ввод текста в любое приложение «Повреждение текстового поля»

    Обновления ios coredata не отображаются в разных контекстах управляемых объектов – данные различаются между контекстами

    создать представление, подобное навигации в меню facebook в iphone

    Случайные сбои в приложении iOS App Google Tag Manager

    Указание флага для других флагов компоновщика в подфайле

    PDFKitten подчеркивает неправильное положение

    Изменение альфа-свойства UIButton из другого класса

    Иногда Xcode сбой при попытке отладки в iPhone Simulator после обновления Xcode6

    открыть UITableViewController как элемент UItabbarcontroller

    Внедрение SWRevealViewController только на одном UITabBarItem

    iOS Найти цвет в точке между двумя цветами

    iOS: Как получить заголовки servicebundle для iOS 9?

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