let allPlaces = resultsArray.map({ (param) -> Places in
return Places(dictionary: param )
})
print("All Places \(allPlaces[0].placeName)")
上述代码的输出是:
所有地方可选("地铁")
在下面的代码中,var不是可选的。但print语句将其打印为Optional。是否打印所有地点"地铁" ?
class Places: NSObject {
var name:String!
init(dictionary:Dictionary<String, Any>) {
name = dictionary["name"] as? String
}
}
答案 0 :(得分:0)
将其更改为
class Places: NSObject {
var name:String!
init(dictionary:Dictionary<String, Any>) {
name = dictionary["name"] as! String
}
}
答案 1 :(得分:0)
改变&#39; as?&#39;到了&#39;。
感叹号意味着它绝对清晰。
问号表示可选绑定。
<强> [来源] 强>
your name example=form2.
form2 obj=new form2();
obj.show();
另一种方式
form1.visible=false;
以强>
form1.Hide();
答案 2 :(得分:0)
var name:String!
您已声明名称为隐式展开的可选项。从Swift 3
开始,如果需要在本地进行类型检查,将仅强制解包。否则,它将被视为正常的可选项。
print("All Places \(allPlaces[0].name)")
这里没有涉及类型检查,因此名称仍然是可选的。
如果你喜欢
let name:String = allPlaces[0].name
print("All Places \(name)")
输出将是“All Places Subway”
或者你需要强行打开它
print("All Places \(allPlaces[0].name!)")
如果name
为零,这会导致崩溃,你应该照顾它。如果有可能名称为nil则使用var name: String?
,因此编译器会强制您明确解包。