我从api获得了一个名为productId
的值。我想将此值存储在Core-Data中,以便我可以在另一个视图控制器中使用它。
所以,当我从api获得productID
时,这就是我保存它的方式......
....else if result["success"] as! Int == 1 {
print("SUCCESS!!")
self.productId = (result["product_id"] as! NSString) as String
self.saveId(givenName: self.productId) //Saving here...
}
在saveId
函数中,这就是我正在做的......
func saveName(givenName:String) {
//Saving to CoreData
guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else {
return
}
let managedContext = appDelegate.persistentContainer.viewContext
let entity = NSEntityDescription.entity(forEntityName: "Category", in: managedContext)
let category = NSManagedObject(entity: entity!, insertInto: managedContext)
category.setValue(givenName, forKey: "productId")
do {
try managedContext.save()
self.mangObjArr.append(category as! Category)
} catch let error as NSError {
print("Could not save. \(error), \(error.userInfo)")
}
}
这不起作用,因为在viewWillAppear
我获取数据时,我{0}获得了nil。这就是我在productId
...
viewWillAppear
希望有人可以帮助...:)
答案 0 :(得分:0)
您从实体类别的CoreData获取数据。 在检查productId之前检查类别对象是否为零。
如果你的category对象是nil,那么很明显productId是nil,这是因为你从CoreDB获取类别并且没有该实体的记录。
希望你明白。
在获取之前保存数据会返回一些记录。