我有简单的方法(希望语法正确)
func foo() -> WmGroupItemSample?{
var sample:WmGroupItemSample?
if(a > 0){ // some condition
sample = mGroupItemSampleList[0]
}
else{
// do nothing
}
return sample
}
据我了解,foo
如果a>0
未发生语句,则方法可能返回nil 。因此返回类型为:WmGroupItemSample?
。
我怀疑在哪里调用此方法:
var sample:WmGroupItemSample? = foo()
if let temp = sample{
return sample.getStartDate()
}
else{
return -1
}
这是验证是否为nil的正确方法吗?我使用Beta 6
如果不打?
或打不给,我会有什么区别!
:
var sample:WmGroupItemSample = foo()
或者:
var sample:WmGroupItemSample! = foo()
为什么我不能sample
像这样验证:
if sample == nil {
/* do one*/
}
else {
}
要将值与nil进行比较,必须允许其被?
标记为nil 。这意味着该值可以(可能)是a nil
。因此,默认情况下:
var a : String
不能为零。要使字符串为零,您必须执行以下操作:
var a : String?
的调用变量与!
展开一个可选值
“尝试使用!来访问不存在的可选值会触发运行时错误。在使用!强制拆包其值之前,请始终确保一个可选值包含非nil值。” 摘自:Apple Inc.“ Swift编程语言”。
iBooks。https://itun.es/pl/jEUH0.l
有关更多信息,我建议:
读。同样,带有答案的SO问题可能会有所帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句