这是我第一次使用核心数据。我试图用它来存储关于我的用户的基本信息(如果他通过parse.com登录)。然而,到目前为止,写入核心数据非常好,我很难获得数据。我能够将数据打印为[NSManagedObject]
,但我无法将数据转换为不同的类型(String
,Bool
和{{1 }})。我怎么能这样做?
保存数据
UIImage
获取数据
func saveUser(username : String, proPic : UIImage?){
//1
let appDelegate =
UIApplication.sharedApplication().delegate as! AppDelegate
let managedContext = appDelegate.managedObjectContext!
//2
let entity = NSEntityDescription.entityForName("User",
inManagedObjectContext:
managedContext)
let person = NSManagedObject(entity: entity!,
insertIntoManagedObjectContext:managedContext)
//3
person.setValue(username, forKey: "username")
person.setValue(true, forKey: "isLoggedIn")
person.setValue(proPic, forKey: "profilePic")
//4
var error: NSError?
if !managedContext.save(&error) {
println("Could not save \(error), \(error?.userInfo)")
}
}
答案 0 :(得分:0)
您可以使用valueForKey
之前使用setValue
的方式。然后你需要处理它返回AnyObject
的事实。
另一种选择是生成自定义NSManagedObject
子类。在模型编辑器中选择您的实体,在顶部菜单中转到编辑器 - >创建NSManagedObjectSubclass ...它将引导您完成这些步骤。完成后,您将拥有自定义类,其中包含每个实体属性的适当类型的属性。