我一直试图这样做一段时间,即访问手机上的联系人并获取阵列上的所有手机号码,但到目前为止还没有达到远。我今天遇到了一个图书馆那种清理过程的方法,但我只是把数字放到一个数组中。
以下是代码:
SwiftAddressBook.requestAccessWithCompletion({ (success, error) -> Void in
if success {
if let people = swiftAddressBook?.allPeople {
for person in people {
NSLog("%@", (person.phoneNumbers?.map( {$0.value} ))!)
}
}
}
else {
//no success. Optionally evaluate error
print("Access Red")
}
})
当NSLog打印时,我在控制台中得到以下内容:
2016-01-25 19:24:20.392 app[39001:7408159] (
"(555) 564-8583",
"(415) 555-3695"
)
2016-01-25 19:24:20.393 app[39001:7408159] (
"555-478-7672",
"(408) 555-5270",
"(408) 555-3514"
)
2016-01-25 19:24:20.393 app[39001:7408159] (
"888-555-5512",
"888-555-1212"
)
2016-01-25 19:24:20.393 app[39001:7408159] (
"555-522-8243"
)
2016-01-25 19:24:20.393 app[39001:7408159] (
"(555) 766-4823",
"(707) 555-1854"
)
2016-01-25 19:24:20.394 app[39001:7408159] (
"555-610-6679"
)
如何才能将这些联系人的数字转换为String类型的数组?这里的目的是在后端实际查询该数组,并通过电话号码获取所有成员。
如果需要进一步参考,则链接到此库:
答案 0 :(得分:1)
基本上你要打印的是很多较小的阵列,类似于同一个人的一组电话号码。我会把所有那些较小的数组合并为一个。
这个怎么样:
SwiftAddressBook.requestAccessWithCompletion({ (success, error) -> Void in
if success {
if let people = swiftAddressBook?.allPeople {
let arrayOfArrays = people.flatMap({$0.phoneNumbers?.map( {$0.value})})
print(arrayOfArrays.flatMap({ $0 }))
}
}
else {
//no success. Optionally evaluate error
print("Access Red")
}
})