【发布时间】:2015-01-27 22:22:28
【问题描述】:
我创建了一个名为Status 的实体,其属性名为statusUpdate。我希望用户能够第一次创建一个状态,然后将其保存在核心数据中,然后在下次更新状态时保存核心数据中的旧状态。这是我所做的:
let appDel: AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate
let context: NSManagedObjectContext = appDel.managedObjectContext!
let newUser = NSEntityDescription.insertNewObjectForEntityForName("Status", inManagedObjectContext: context) as NSManagedObject
var request = NSFetchRequest(entityName: "Status")
request.returnsObjectsAsFaults = false
var results = context.executeFetchRequest(request, error: &self.error)
if results?.count > 0 {
for result: AnyObject in results! {
if var oldStatus = result.valueForKey("statusUpdate") as? String {
println("Current User fetched status from Core Data")
var newStatus = self.updateStatusText.text
result.setValue(newStatus, forKey: "statusUpdate")
} else if result.valueForKey("statusUpdate") == nil {
var newStatus = self.updateStatusText.text
newUser.setValue(newStatus, forKey: "statusUpdate")
println("Status uploaded for the first time")
}
}
}
context.save(&self.error)
问题是else if 似乎总是在运行。我希望它基本上只运行 Status 实体为 nil (所以它只会在有人第一次更新状态时运行),然后当状态更新后,它将运行常规的 if 语句。
我不确定我做错了什么???
提前致谢。
【问题讨论】:
-
为什么不明确检查 if (var oldStatus = result.valueForKey("statusUpdate") as?String) == nil
标签: ios xcode swift if-statement core-data