在Objective-C,如果我有以下属性:斯威夫特:可选的阵列数
@property (strong, nonatomic) NSArray * myArray;
在myArray
返回一个数字对象的方法将如下所示:
- (NSInteger) numberOfObjectsInMyArray
{
return [self.myArray count];
}
这返回数组中的对象数量,或者返回0,如果myArray == nil
;
我能想到的在斯威夫特这样做的最好的是等效的:
var myArray: Array<String>?
func numberOfObjectsInMyArray() -> Int
{
return myArray ? myArray!.count : 0
}
所以,检查可选的阵列包含一个值,如果是的话解开了数组并返回该值,否则返回0
这是正确的方法吗?还是有更简单的方法?
也许返回一个可选的'Int?'? –
可选的'Int'不是必需的,因为在这里的每种情况下都有一个返回值的值。 – holex
'return myArray?.count' ...是的,绝对更短。但是,当然这依赖于在允许可选的地方使用的结果。 'func numberOfSectionsInTableView(tableView:UITableView!) - > Int'例如 –