我正在尝试开发iPhone应用并实现类似于Snapchat和许多其他应用的功能。我想询问用户的手机号码并将其添加到我的数据库中。然后,我想请求访问我的地址簿的权限,并根据我的手机联系人(朋友手机号码),我可以建议我的朋友的个人资料已安装该应用程序。我开发了一些功能,我可以将所有用户的联系人作为字符串。但我有一些问题。人们可以用不同的方式编写手机号码(将国家代码放在首位等)。由于我匹配一个精确的字符串,它变得有点难。
这个问题有解决办法吗?我知道不同的国家有不同的方式来编写手机号码。 F.E.在葡萄牙,我们可以写00351 911 111 111或+351 911 111 111或911 111 111。这在葡萄牙很容易解决,因为我们都有最后9位数字,很容易比较。但在美国,我看过(555)XXX-XXXX或XXX-XXX-XXXX以及许多其他格式..我无法确定用户如何保存联系人,以及其他国家/地区也是如此。
要求授权后发生的所有事件
在viewDidLoad中,我搜索解析手机用户
override func viewDidAppear(animated: Bool) {
var query = PFUser.query()
query?.findObjectsInBackgroundWithBlock({ (objects, error) -> Void in
if let users = objects {
self.contactsUsernameArray.removeAll(keepCapacity: false)
self.contactsNameArray.removeAll(keepCapacity: false)
self.contactsImageFiles.removeAll(keepCapacity: false)
self.contactsNumberArray.removeAll(keepCapacity: false)
for object in users {
for var i = 0; i < self.phoneNumbers.count - 1; i++ {
if object["phoneNumber"] as! String == self.phoneNumbers[i] {
self.contactsUsernameArray.append(object.username!!)
self.contactsNameArray.append(object["name"] as! String)
self.contactsNumberArray.append(object["phoneNumber"] as! String)
self.contactsImageFiles.append(object["photo"] as! PFFile)
}
}
}
}
//println(self.usernames)
//println(self.userids)
self.contactsTable.reloadData()
})
}