我一直在嘗試在我的應用中實現一個簡單的核心數據功能,以便它僅在應用第一次加載時顯示教程(帶有滾動頁面的單獨視圖控制器),以及每隔一段時間繞過它。 我開始使用Swift 2的CoreData教程的語法,但之後必須根據Swift 3的自動更正和其他教程來幫助我克服沿途發現的錯誤(如SIGBRT)。我遇到的當前問題是EXC_BAD_INSTRUCTION錯誤,我需要幫助修復。Swift 3核心數據中的簡單提取
我有一個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 Beta 8。 我有一個名爲CoreDataStuf.xcdatamodeld的swift文件,它有一個名爲「Person」的實體,名爲tutorialstatus,它是一個字符串。我也給了這個實體一類Person。 我也有一個DataController.swift文件,我指的是URL CoreDataStuf。
本教程提供插入,更新,刪除和列表演示在CoreDate中:https://iosdevcenters.blogspot.com/2016/06/crud-operations-using-code-data-swift.html –
放入一些斷點看看'moc'和'personFetch'不是零。另外,我認爲你的意思是你在運行時得到錯誤,而不是在編譯期間? – Koen
是的,你是正確的 - 我在運行時得到它,而不是編譯。 – Fourthdan