2014-10-03 36 views
0

我在這我想打印一個SQL精簡版數據庫中的兩個值(我下面對核心數據的教程)通過拆自選

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(result.password!); 
      println(result.name!); 
     } 
    }else{ 
     println("No results found"); 
    } 

執行下列打印輸出看到下面

Optional("pass") 
Ricki 

不過,如果我修改

result.password

爲了下面

println(result.password! as String!); 

然後我得到的輸出如下;

pass 
Ricki 

爲什麼我需要在數據庫中執行此一列它沒有可選打印,但不爲別的?

謝謝

+0

爲什麼您在搜索結果中去時使用'AnyObject',而不是'Users'?請顯示'用戶'上聲明的'name'和'password'。 – Kirsteins 2014-10-03 09:21:29

+0

在你的對象模型中,你有沒有選擇'name'屬性的可選複選框? – 2014-10-03 09:52:02

回答

0

您不應該投射爲Anyobject,更好Cast als NSObject Array。

像:

var request = NSFetchRequest(entityName: "Users"); 
request.returnsObjectsAsFaults = false; 
var users = context.executeFetchRequest(request, error: nil) as [Users] 

If users.count > 0 { 

    for user in users { 

     println(user.password); 
     println(user.name); 
    } 

} 

之所以之一,如果你的價值觀可能需要一個!可能是因爲你已經取消選中了「可選複選框」在你的核心數據

enter image description here