У меня есть два одинаковых набора кода, однако я не понимаю, почему второй набор не работает. Если изменить линию от
println(result.password)
к println(result.token)
Я получаю сообщение об ошибке из 'AnyObject' does not have a member named 'token'
«AnyObject» не имеет имени элемента - при доступе к данным ядра
Вот рабочий код:
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
var appDel: AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
var context: NSManagedObjectContext = appDel.managedObjectContext!
var newUser = NSEntityDescription.insertNewObjectForEntityForName("Users", inManagedObjectContext: context) as! NSManagedObject
newUser.setValue("test-1", forKey: "token")
context.save(nil)
var request = NSFetchRequest(entityName: "Users")
var results = context.executeFetchRequest(request, error: nil)
if results!.count > 0 {
for result: AnyObject in results! {
println(result.password)
}
} else {
println("No results")
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
Если изменить строку println(result)
я получаю распечатку, показывая там это атрибут с именем token
.
<NSManagedObject: 0x7ffa2945c3a0> (entity: Users; id: 0xd000000000040000 <x-coredata://749CCE65-5C4A-45F2-839C-195A94AFCDB6/Users/p1> ; data: <fault>)
<NSManagedObject: 0x7ffa2945c400> (entity: Users; id: 0xd000000000080000 <x-coredata://749CCE65-5C4A-45F2-839C-195A94AFCDB6/Users/p2> ; data: <fault>)
<NSManagedObject: 0x7ffa2945c460> (entity: Users; id: 0xd0000000000c0000 <x-coredata://749CCE65-5C4A-45F2-839C-195A94AFCDB6/Users/p3> ; data: <fault>)
<NSManagedObject: 0x7ffa2964b360> (entity: Users; id: 0xd000000000100000 <x-coredata://749CCE65-5C4A-45F2-839C-195A94AFCDB6/Users/p4> ; data: {
password = nil;
token = "test-1";
username = nil;
})
Ну, какой тип объекта является результатом? – boidkan