为什么我不能在Swift中使用'object == nil'?

斯纳格斯

我有简单的方法(希望语法正确)

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 {

}
朱利安·金(Julian King)

要将值与nil进行比较,必须允许其被?标记为nil 这意味着该值可以(可能)是a nil因此,默认情况下:

var a : String

不能为零。要使字符串为零,您必须执行以下操作:

var a : String?

的调用变量与!展开一个可选值

“尝试使用!来访问不存在的可选值会触发运行时错误。在使用!强制拆包其值之前,请始终确保一个可选值包含非nil值。” 摘自:Apple Inc.“ Swift编程语言”。

iBooks。https://itun.es/pl/jEUH0.l

有关更多信息,我建议:

读。同样,带有答案的SO问题可能会有所帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我不能在界面中使用默认方法?

为什么我不能在匿名类中使用<Class> .this?

为什么我不能在开关案例中使用枚举?

为什么我不能在Swift中使用let in协议?

为什么我不能在Flutter中使用某些图标?

为什么type(nil)== nil为假?

为什么我不能在JavaScript的Object Literals中使用原型?

为什么我不能在Activity中使用FloatingActionButton

为什么我不能在Crontab中使用Python 3?

为什么不能在我的Magic Square程序中使用

为什么我不能在Spark的mapPartitions中使用foreach

为什么我不能在grep中使用^ \ s?

为什么CreateSQLQuery抛出异常“值System.Object []不是类型,并且不能在此通用集合中使用”?

为什么我不能在CSS Variable中使用rgba?

为什么我不能在Laravel中使用关系方法?

为什么我不能在列表中使用匿名函数?

如果Object :: try被发送到nil对象,为什么会起作用?

如果params [:object] .nil?:object =值

来自Neo Koans => object.nil?或object == nil

为什么我的Swift字符串变量返回nil?

为什么我不能在Swift中的for循环中使用i ++

为什么Nil :: Nil还给List(List())?

我不能在解析时使用nil表示“ undefined”吗?

为什么我不能在TRecord中使用Variable?

为什么我不能在 swift 3 的应用程序中使用后台模式?

为什么我不能在我的代码中使用“ balance ”?

为什么我不能在 Spark 中使用 combineByKey?

当我们在 Linq 上使用 .Select(x=>new object) 时,为什么我们不能在多方面选择任何属性

为什么我不能在 `ICommand` 的 `Execute` 方法中使用 `as` 将 `object` 转换为枚举类型?