gpt4 book ai didi

arrays - 检查联系人的电话号码是否在我的服务器上

转载 作者:行者123 更新时间:2023-11-30 13:48:22 25 4
gpt4 key购买 nike

我想检查在我的应用程序上注册并存储在我的服务器上的号码是否在运行该应用程序的设备上。我尝试过,但我真的无法从这里继续:

在我的类里面我已经声明:

var chatMatesArray: NSMutableArray = NSMutableArray()
var contactsName: NSMutableArray = NSMutableArray()
var users: NSMutableArray = NSMutableArray()
var phoneNumbers: NSMutableArray = NSMutableArray()

在我看来DidLoad:

override func viewDidLoad() {
super.viewDidLoad()
//I already have the permission to check AddressBook

var allNumbers: [AnyObject] = []
let adbk : ABAddressBook? = ABAddressBookCreateWithOptions(nil, nil).takeRetainedValue()
let people = ABAddressBookCopyArrayOfAllPeople(adbk).takeRetainedValue() as NSArray as [ABRecord]
for person in people {

let phones: ABMultiValueRef = ABRecordCopyValue(person, kABPersonPhoneProperty).takeRetainedValue()
for j in 0..<ABMultiValueGetCount(phones) {
let phone: String = ABMultiValueCopyValueAtIndex(phones, j).takeRetainedValue() as! String
allNumbers.append(phone)
self.phoneNumbers.addObject(allNumbers)
}
}
}

然后我有一个从服务器检索号码的函数,我将它们存储到数组 chatMatesArray 中,然后尝试执行以下操作:

let set1 = Set(arrayLiteral: self.chatMatesArray)
let set2 = Set(arrayLiteral: self.phoneNumbers)
self.users.addObject(set2.intersect(set1))

这将检查我的服务器和地址簿上的号码,对吗?但是我怎样才能从该号码返回到其所有者的全名,以便我可以在 UITableView 中显示?

预先感谢您的帮助。

最佳答案

对于您的方法,您可以使用将电话号码映射到联系人的字典(尽管可能会发生冲突)。

但这确实不是 Swift 的做事方式。您应该考虑使用 mapfilter 来转换地址簿数据并返回与您的条件(不)匹配的联系人集。

如果您更喜欢原始方法,则快速枚举联系人列表以查找匹配项会更简单,而不是先进行设置交集,然后将电话号码映射回联系人。

关于arrays - 检查联系人的电话号码是否在我的服务器上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34630001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com