展开选项

时间:2014-10-03 09:05:43

标签: ios xcode sqlite swift optional

我在sql lite数据库中有两个值,我正在尝试打印(我正在关注核心数据的教程)

    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

为什么我需要为数据库中的一列执行此操作,以便在没有可选项但不为另一列的情况下进行打印?

由于

1 个答案:

答案 0 :(得分:0)

你不应该作为Anyobject,更好地施放NSObject阵列。

像:

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