我在檢索核心數據時遇到問題(代碼如下所示)。我創建了一個新的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截圖: