我有一个NSObject子类。说CityWalks
类CityWalks { var totalCount:Int? }
如何进一步使用此属性?每次访问此值时,我应该检查nil是否合并。
示例:
让aObject =
在一个函数(function1())中说,我需要访问这个值,然后它想要(aObject!.totalCount ?? 0)
func function1(){
...Some Access code for the object....
(aObject!.totalCount ?? 0)
}
与其他所有函数(function2())类似,我必须编写相同的代码。
func function2(){
...Some Access code for the object....
(aObject!.totalCount ?? 0)
}
那么,考虑到这个属性可能会从服务器接收一个值,或者可能不会从服务器接收值,这可能是一个更好的方法。
答案 0 :(得分:0)
如果您具有此属性的默认值,则只需将此值指定为默认值。
class YourClass {
var totalCount = 0
}
如果可能的话,我建议您避免使用可选值。因为可选值会在您收到错误时首先出现。
答案 1 :(得分:0)
如评论中所述,使用可选项的其他答案在您的情况下并不是最佳选择。您似乎也可以使用默认值0。
但是,为了澄清,您必须在展开可选项时检查该值。 有时可以将可选项传递给UIElement等,然后你真的不需要对它们做任何事情
在swift中构建的可选值中有很多方法可以检查nil,因此即使使用可选值,也可以构建非常简洁的代码。
如果您想了解有关安全展开值的更多信息,请查看guard let
和if let
。
如果让
if let totalWalks = aObject?.totalCount {
//operate on totalWalks
}
后卫
guard let totalWalks = aObject?.totalCount else { return }
//operate on totalWalks
在某些情况下,您可能希望在可选值上调用函数,在这种情况下,您可以使用?
aObject?.doSomething()
此函数可能具有的任何返回值现在将包含在可选项中,您可能需要使用if let
或guard
使用选项时,你应该尽量避免强制用!
进行展开,即使你现在知道值不是null,代码更改后可能不再为真。