1

我有一个 NSObject 子类。说 CityWalks

类 CityWalks{ var totalCount:Int? }

我如何进一步使用此属性?每次访问此值时我是否应该检查 nil 合并。

例子:

让一个对象 =

说在一个函数 (function1()) 中,我需要访问这个值,然后它会想要(aObject!.totalCount ?? 0)

func function1(){
 ...Some Access code for the object....
 (aObject!.totalCount ?? 0)
}

同样,在所有其他 function(function2()) 中,我将不得不编写相同的代码。

func function2(){
 ...Some Access code for the object....
 (aObject!.totalCount ?? 0)
}

因此,考虑到此属性可能会从服务器接收值,也可能不会,对于此类字段来说,什么可能是更好的方法。

4

2 回答 2

0

如评论中所述,使用可选的其他答案在您的情况下并不是最佳选择。看来您不妨使用默认值 0。

但是,为了澄清,您必须在打开可选选项时检查该值。有时可以将一个可选项传递给 UIElement 等,然后你真的不需要对它们做任何事情

有很多方法可以检查 swift 内置的可选值中的 nil,因此即使您使用可选值,您也可以构建非常简洁的代码。

如果您想了解更多关于安全展开值的信息,请查看guard letif let

如果让

if let totalWalks = aObject?.totalCount {
    //operate on totalWalks
}

警卫

guard let totalWalks = aObject?.totalCount else { return }
//operate on totalWalks

在某些情况下,您希望在可选值上调用函数,在这种情况下,您可以使用?

aObject?.doSomething()

此函数可能具有的任何返回值现在都将被包装在一个可选项中,并且您可能还必须使用一个if letguard

使用可选项时,您应该尽量避免强制解包,!因为即使您目前知道该值不为空,在代码更改后可能不再为真。

于 2015-10-28T06:49:01.787 回答
0

如果您有此属性的默认值,只需将此值指定为默认值。

class YourClass {
   var totalCount  = 0
}

如果可能,我建议您避免使用可选值。因为当您可能遇到错误时,可选值是第一位的。

于 2015-10-28T06:43:29.150 回答