2015-09-26 20 views
0

以下控制器具有numberOfRowsInSection: ofUITableViewDataSource。具有三元运算符的Swift UITableView numberOfRowsInSection

class CityList: UIViewController,UITableViewDataSource,UITableViewDelegate { 

    weak var cityListArray:NSMutableArray? = nil 

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
return self.cityListArray?.count 
} 
} 

return self.cityListArray?.count shows可选类型int的值?不打开你的意思是使用'!'要么 ”?”

如何在这里使用三元运算符,如果数组为空则返回0?

如果对象为零,则Objective-C的默认值返回0。

+1

使用nil合并运算符:'return self.cityListArray?.count ?? 0'。 – vacawama

回答

1

有两个答案。在这个问题的评论中已经提到了一个。

return self.cityListArray?.count ?? 0 

这似乎比使用三元运算符,下面提到的那个短。

return (self.cityListArray != nil) ? self.cityListArray!.count : 0