我一直在尝试在我的应用中实现一个简单的核心数据功能,以便它仅在应用第一次加载时显示教程(带有滚动页面的单独视图控制器),以及每隔一段时间绕过它。 我开始使用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