![](/img/trans.png)
[英]How to sort contacts alphabetically while using SwiftAddressBook?
[英]How to manipulate iOS contacts with SwiftAddressBook?
我正在尝试让所有用户联系,并查看他们是否已经在后端指定了。 我首先尝试使用SwiftAddressBook获取所有联系人,然后我想编辑所有电话号码并在电话号码中添加国家/地区代码。
我做了这个功能,但是不起作用,只显示电话号码。
SwiftAddressBook.requestAccessWithCompletion({ (success, error) -> Void in
if success {
if let people = swiftAddressBook?.allPeople {
for person in people {
var phonenumber = String (person.phoneNumbers?.map({$0.value}))
print(phonenumber.characters.last)
if phonenumber.characters.first == "0" {
phonenumber = phonenumber.stringByReplacingCharactersInRange(phonenumber.startIndex..<phonenumber.startIndex.successor(), withString: "+33")
}
print(phonenumber)
}
}
}
else {
print("Fail")
}
})
好吧,首先,您应该调用swiftAddressBook.save()
保存通讯簿的当前状态。 其次,您要更改一个本地字符串变量,该变量不会影响通讯簿状态。 似乎SwiftAddressBook
仅在更改phoneNumbers
数组时才会更改联系人。 这应该工作:
SwiftAddressBook.requestAccessWithCompletion({ (success, error) -> Void in
if success {
if let people = swiftAddressBook?.allPeople {
for person in people {
if let phoneNumbers = person.phoneNumbers {
var phoneNumbersChanged = false
var newPhoneNumbers = [MultivalueEntry<String>]()
for var phonenumber in phoneNumbers {
if phonenumber.value.characters.first == "0" {
phonenumber.value = phonenumber.value.stringByReplacingCharactersInRange(phonenumber.value.startIndex..<phonenumber.value.startIndex.successor(), withString: "+33")
newPhoneNumbers.append(MultivalueEntry(value: phonenumber.value, label: phonenumber.label, id: phonenumber.id))
phoneNumbersChanged = true
} else {
newPhoneNumbers.append(phonenumber)
}
print(phonenumber.value)
}
if phoneNumbersChanged {
person.phoneNumbers = newPhoneNumbers
}
}
}
swiftAddressBook.save()
}
}
else {
print("Fail")
}
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.