誰もがiOS 9コンタクトフレームワークを使用して既存のコンタクトグループを削除しようとしましたか?iOSコンタクトグループの削除
私は接触ストアを初期化してくれCNGroup
インスタンスの配列を与える連絡先グループのリストを要求:
var groups: [CNGroup]?
do {
self.groups = try contactStore.groupsMatchingPredicate(nil)
}
catch { ... }
し、私はテーブルビューでグループを表示。ユーザーがテーブルビューのセルをスワイプすると、コンタクトストアから対応するグループを削除します。
ただし、CNContactStore
の方法は、CNGroup
ではなく、CNMutableGroup
インスタンスを必要とします。私はCNMutableGroup
にCNGroup
インスタンスをキャストしようとした場合、明らかに
Cannot convert value of type 'CNGroup' to expected type 'CNMutableGroup'
::私は実現
Could not cast value of type 'CNGroup' (0x370890f8) to 'CNMutableGroup' (0x370899f4)
:
let saveRequest = CNSaveRequest()
saveRequest.deleteGroup(group as! CNMutableGroup)
do {
try contactStore.executeSaveRequest(saveRequest)
}
catch { ... }
が、私は、実行時にクラッシュを取得Xcodeは私にエラーを与えますこれはCNGroup
がCNMutableGroup
のスーパークラスだからですが、もう一度私はどのように取得するのか分かりませんCNMutableGroup
初期化されたウィットh CNGroup
インスタンス。
連絡先フレームワークへのアクセスをリクエストしました。 Xcode 7.3、iOS 9.2.1。
連絡先グループを削除する方法のアイデアはありますか?
最終的に、最新のAPI構文で「try contactStore.execute(saveRequest)」としてXcode 8.3 + Swift 3.1でiOS 10.3でこれを検証しました。ありがとう! –