如何在副标题和某些单词之间的逗号之间添加空格?我使用swift 3。
override
public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell{
let cell = tableView.dequeueReusableCell(withIdentifier: "cell")!
let selectedItem = matchingItems[indexPath.row].placemark
cell.textLabel?.text = selectedItem.name
cell.detailTextLabel?.text = selectedItem.subThoroughfare! + selectedItem.thoroughfare!
+ selectedItem.locality! + selectedItem.administrativeArea! + selectedItem.postalCode!
return cell
}
答案 0 :(得分:0)
您正在使用强制解包值,并且当代码尝试将字符串连接到nil
值时,有可能其中一个值为nil
,因此您会遇到崩溃。< / p>
答案 1 :(得分:0)
您遇到崩溃的原因是因为您强制包装CLPlacemark
的可选属性,如果您想加入地址,请尝试这样的事情。在String?
数组之后使用!
数组生成当前尝试生成地址的所有可选属性的flatMap
数组,以忽略nil
,然后只使用分隔符加入数组,
。
override public tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell{
let cell = tableView.dequeueReusableCell(withIdentifier: "cell")!
let selectedItem = matchingItems[indexPath.row].placemark
cell.textLabel?.text = selectedItem.name
let addressArray = [selectedItem.subThoroughfare, selectedItem.thoroughfare, selectedItem.locality, selectedItem.administrativeArea, selectedItem.postalCode].flatMap({$0})
if addressArray.isEmpty {
cell.detailTextLabel?.text = "N/A" //Set any default value
}
else {
cell.detailTextLabel?.text = addressArray.joined(separator: ", ")
}
return cell
}