gpt4 book ai didi

iphone - 如何在 Swift 中以编程方式将联系人设置为最喜欢的联系人?

转载 作者:可可西里 更新时间:2023-11-01 02:04:18 24 4
gpt4 key购买 nike

我正在开发一个应用程序,我需要从设备中获取所有联系人,然后在按下按钮时将其设置为最喜欢的联系人。我可以在 iOS 9 和 10 中使用 [CNContact] 获取所有联系人。但不知道如何将其设置为收藏联系人。

我们可以将 CNContact 设置为常用联系人吗?我们可以更改 CNContact 吗?

最佳答案

您可以将收藏夹存储到 Realm DB。像这样,

class FavouriteList: Object {
let favouriteList : List<FavouriteContact> = List<FavouriteContact>()

}
class FavouriteContact: Object {
dynamic var identifier : String? = ""
override class func primaryKey() -> String? {
return "identifier"
}
}


// Add Favourite Contact in Realm
class func add(identifier: String) -> Bool {
var realm: Realm!
do {
realm = try Realm()
realm.beginWrite()
} catch {
print(error.localizedDescription)
}
let realmTask: FavouriteList= FavouriteList()
let favContact: FavouriteContact = FavouriteContact()

// Check ID Exist or Not
let idExists: FavouriteContact? = realm.object(ofType: FavouriteContact.self, forPrimaryKey: identifier)
if idExists?.identifier != nil {
realm.cancelWrite()
return false

} else {
favContact.identifier = identifier
realmTask.favouriteList.append(favContact)
realm.add(realmTask)
}

// Realm Commit
do {
try realm.commitWrite()
} catch {
print("Realm Task Write Error : ", error.localizedDescription)
}
return true

}

// Remove Favourite Contact

class func remove(identifier: String) -> Bool {
var realm: Realm!
do {
realm = try Realm()
realm.beginWrite()
} catch {
print(error.localizedDescription)
}

// Check ID Exist or Not
let idExists: FavouriteContact? = realm.object(ofType: FavouriteContact.self, forPrimaryKey: identifier)
if idExists?.identifier != nil {
realm.delete(idExists!)
} else {
realm.cancelWrite()
return false
}
// Realm Commit
do {
try realm.commitWrite()
} catch {
print("Realm Task Write Error : ", error.localizedDescription)
}
return true
}

// Get Favourite List
class func get(completionHandler: @escaping (_ result: [CNContact]) -> ()) {
var favourites: [CNContact] = [CNContact]()
do {
let realm = try Realm()
let dataRealmContacts: Results<FavouriteList> = realm.objects(FavouriteList.self)
for item in dataRealmContacts {
for contactID in item.favouriteList {
if contactID.identifier != nil {
favourites.append(getContactFromID(identifier: contactID.identifier!))
}
}
}
completionHandler(favourites)
} catch {
print(error.localizedDescription)
completionHandler(favourites)
}

}

关于iphone - 如何在 Swift 中以编程方式将联系人设置为最喜欢的联系人?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44473122/

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