iOS 9 連絡先フレームワークを使用して既存の連絡先グループを削除しようとした人はいますか?
連絡先ストアを初期化し、連絡先グループのリストを要求します。これにより、CNGroup
インスタンスの配列が得られます。
var groups: [CNGroup]?
do {
self.groups = try contactStore.groupsMatchingPredicate(nil)
}
catch { ... }
次に、グループを表形式で表示します。ユーザーがテーブル ビューのセルをスワイプすると、対応するグループを連絡先ストアから削除したいと考えています。
ただし、 のdeleteGroup
メソッドには、ではなくインスタンスがCNContactStore
必要です。Xcode でエラーが表示されます。CNMutableGroup
CNGroup
Cannot convert value of type 'CNGroup' to expected type 'CNMutableGroup'
CNGroup
明らかに、インスタンスをにキャストしようとするとCNMutableGroup
:
let saveRequest = CNSaveRequest()
saveRequest.deleteGroup(group as! CNMutableGroup)
do {
try contactStore.executeSaveRequest(saveRequest)
}
catch { ... }
実行時にクラッシュします。
Could not cast value of type 'CNGroup' (0x370890f8) to 'CNMutableGroup' (0x370899f4)
これはCNGroup
のスーパークラスであるためだと思いますが、インスタンスで初期化するCNMutableGroup
方法がわかりません。CNMutableGroup
CNGroup
Contacts フレームワークへのアクセスをリクエストしました。Xcode 7.3、iOS 9.2.1。
では、連絡先グループを削除する方法についてのアイデアはありますか?