我在检索核心数据时遇到问题(代码如下所示)。我创建了一个新的XCode项目和具有三个属性username
,password
和testnumbers
的数据模型。使用下面的代码我将值存储在它们中,并将结果输出到日志中(右下角是输出,来自注释掉的代码行println(results)
)。很显然,它已经正确存储了我所想的一切。Swift中的核心数据检索问题
现在我评论说,部分出来,现在要检索下username
,password
和testnumbers
存储的值。打印result.password
似乎与代码一样正常,但在代码中尝试打印result.testnumbers
和result.username
时,它表示“'AnyObject'没有名为'testnumbers/username'的成员”。我不知道发生了什么,因为我之前的输出显示了这些的正确存储。
我已经尝试重做这个简单的项目几次,总是先创建数据模型,并确保一切拼写正确,等等。同样的事情不断发生。
下面是代码:
import UIKit
import CoreData
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
var appDel:AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate
var context:NSManagedObjectContext = appDel.managedObjectContext!
var newUser = NSEntityDescription.insertNewObjectForEntityForName("Users",
inManagedObjectContext: context) as NSManagedObject
newUser.setValue("Mark", forKey: "username")
newUser.setValue("pass", forKey: "password")
newUser.setValue("12345", forKey: "testnumbers")
context.save(nil)
var request = NSFetchRequest(entityName: "Users")
request.returnsObjectsAsFaults = false
var results = context.executeFetchRequest(request, error: nil)
if results?.count > 0 {
for result: AnyObject in results! {
//println(results) // this printed everything fine
println(result.password)
println(result.testnumbers)
println(result.username)
}
}
}
}
下面是什么,首先println(results)
给我的输出:
可选([(单位:用户; ID: 0xd000000000040000 ;数据:密码= pass; testnumbers = 12345; username = Mark;}),(entity:Users; id:0xd000000000080000 ; data:{ password = pass; testnumbers = 12345; username = Mark; }),(实体:用户; ID:0xd0000000000c0000 ;数据:{ 密码=通过; testnumbers = 12345; 用户名=标记;})])
实际的XCode截图: