您好,我目前正在使用通讯录应用程序,但是我无法在单元格中正确显示联系人号码,我想要的是将其显示为没有可选文本和(“”)的字符串。这是我的代码:
let cell = tableView.dequeueReusableCell(withIdentifier: "contactCell", for: indexPath)
let contact: CNContact!
if inSearchMode {
contact = filteredData[indexPath.row]
} else {
contact = contactList[indexPath.row]
}
cell.textLabel?.text = "\(contact.givenName) \(contact.familyName) \((contact.phoneNumbers.first?.value as? CNPhoneNumber)?.stringValue) "
return cell
}
如何在姓名下显示数字?
答案 0 :(得分:1)
使用此??
nil-coalescing运算符:
"\(contact.givenName ?? "") \(contact.familyName ?? "") \((contact.phoneNumbers.first?.value as? CNPhoneNumber)?.stringValue ?? "") "
以这个例子为例:
let s: String? = "Hello"
let newString = s ?? "World" //s is not nil, so it is unwrapped and returned
type(of: newString) //String.Type
如果??
左侧的操作数为nil,则返回其右侧的操作数。 ??
左侧的操作数不是nil,然后将其解包并返回。
let s2: String? = nil
let s3 = s ?? "World" //In this case s2 is nil, so "World" is returned
type(of: newString) //String.Type