【发布时间】:2016-07-10 04:27:07
【问题描述】:
我开始使用 Swift 为 iPhone 应用程序编写代码,我正面临这个相当令人困惑的障碍,对你们中的一些人来说这可能是微不足道的。我不断收到错误消息,记录是fatal error: unexpectedly found nil while unwrapping an Optional value 或nil,但是当我检查.sqlite 时记录在那里
让我带你过去
我的.xcdatamodeld的名字是ReviewerApp.xcdatamodeld,和我的app名字ReviewApp一样 ReviewerApp.xcdatamodeld
我的班级名称是Users,我的实体名称是User
我的属性(用户名、邮箱、密码)都是type: String,有properties: optional
Users.swift
import Foundation
import CoreData
@objc(Users)
class Users: NSManagedObject {
// Insert code here to add functionality to your managed object subclass
@NSManaged var username: String?
@NSManaged var email: String?
@NSManaged var password: String?
}
signUpController.swift中的saveUser()函数
func saveUser() {
// create an instance of our managedObjectContext
let moc = DataController().managedObjectContext
// we set up our entity by selecting the entity and context that we're targeting
let entity = NSEntityDescription.insertNewObjectForEntityForName("User", inManagedObjectContext: moc) as! Users
// add our data
entity.setValue(usernameTxtFld.text, forKey: "username")
entity.setValue(emailTxtFld.text, forKey: "email")
entity.setValue(passwordTxtFld.text, forKey: "password")
// we save our entity
do {
try moc.save()
//user.append(entity)
print("saved")
} catch {
fatalError("Failure to save context: \(error)")
}
}
SignInController.swift 中的fetch() 函数
let moc = DataController().managedObjectContext
let userFetch = NSFetchRequest(entityName: "User")
do {
let fetchedUser = try moc.executeFetchRequest(userFetch) as! [Users]
print(fetchedUser.first!.username!)
} catch {
fatalError("Failed to fetch person: \(error)")
}
每次我保存用户注册过程,记录都保存在核心数据中。但每次我试图获取它时:
by: print(fetchedUser.first!.username!) ,控制台中的消息是
fatal error: unexpectedly found nil while unwrapping an Optional valueby: print(fetchedUser.first?.username) ,控制台中的消息是
nil
非常感谢您的帮助,提前
【问题讨论】:
标签: ios iphone swift core-data