如何在字幕和逗号之间添加一些空格?

时间:2017-06-05 05:26:36

标签: swift xcode swift3 xcode8

如何在副标题和某些单词之间的逗号之间添加空格?我使用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
}

2 个答案:

答案 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
}