Я пытаюсь реализовать простые функциональные возможности ядра в своем приложении, чтобы он показывал учебник (отдельный контроллер просмотра со страницей прокрутки) только при загрузке приложения и обходит его каждый раз. Я начал с синтаксиса учебных пособий CoreData для Swift 2, но затем должен был настроить на основе автоматических исправлений Swift 3 и других обучающих программ, которые помогли мне преодолеть ошибки, которые я нашел на этом пути (например, SIGBRT). Текущая проблема, с которой я столкнулся, - это ошибка EXC_BAD_INSTRUCTION, для которой мне нужна помощь.Простая выборка в данных Swift 3 Core
У меня scrollViewController со следующим кодом:
class ScrollViewController: UIViewController, NSFetchedResultsControllerDelegate {
@IBOutlet var mainScrollView: UIScrollView!
@IBOutlet weak var endTutorial: UIButton!
var imageArray = [UIImage]()
class Person: NSManagedObject {
@NSManaged var tutorialstatus: String?
}
func seed() {
let moc = DataController().managedObjectContext
let entityDes = NSEntityDescription.entity(forEntityName: "Person", in: moc)
let entity = Person(entity: entityDes!, insertInto: moc)
entity.tutorialstatus="test value"
do {
try moc.save()
} catch {
fatalError("Failure to save context: \(error)")
}
}
func fetch() {
let moc = DataController().managedObjectContext
let personFetch = NSFetchRequest<Person>(entityName: "Person")
do {
let fetchedPerson = try moc.fetch(personFetch)
print(fetchedPerson.first!.tutorialstatus)
} catch {
fatalError("Failed to fetch person: \(error)")
}
}
let fetchedPerson = try moc.fetch(personFetch)
На линии, когда я пытаюсь скомпилировать, я вижу ошибки EXC_BAD_INSTRUCTION (код = EXC_1386_INVOP, субкодовое = 0x0)
Я использую Xcode 8, бета 8. У меня есть быстрый файл с именем CoreDataStuf.xcdatamodeld, который имеет объект с именем «Лицо» с атрибутом tutorialstatus, который является строкой. Я также дал этому сущности класс Человека. У меня также есть файл DataController.swift, где я ссылаюсь на URL CoreDataStuf.
Этот учебник обеспечения Вставка, обновление, удаление и список демо в CoreDate: https://iosdevcenters.blogspot.com/2016/06/crud-operations-using-code-data-swift.html –
Поместите некоторые точки останова в см., если 'moc' и' personFetch' не ноль. Кроме того, я думаю, вы имели в виду, что получаете ошибку во время выполнения, а не во время компиляции? – Koen
Да, вы правы - я получаю его во время выполнения и не компилирую. – Fourthdan