を使用してCKReferenceListからCKReferenceの削除に失敗しました、何かがそれから私は、従業員レコードを指す別のCKReferenceを持っているこの私は従業員のリストについてCKReferenceListを持ってCKRecord REMOVEOBJECT
(
"<CKReference: 0xa5bc930; 83a97165-2635-4bda-a7eb-fabf5a725bed:(_defaultZone:__defaultOwner__)>",
"<CKReference: 0xa50a2e0; 9B7F4269-D8BA-4CE9-9BCF-AD2047B73EB5:(_defaultZone:__defaultOwner__)>"
)
のように見えることがあります。この特定の従業員の参照が従業員のリストにあることをこの
"<CKReference: 0xa5bc330; 83a97165-2635-4bda-a7eb-fabf5a725bed:(_defaultZone:__defaultOwner__)>"
お知らせのように見えるかもしれない、彼らは同じ参照名、つまり「83a97165-2635-4bda-a7eb-fabf5a725bed」を持っています。
参照名が同じであっても、私はリストから参照を削除しないであろう
NSMutableArray<CKReference*>* employeeList = [[NSMutableArray alloc]initWithArray:self.employeeList];
if(employeeList != nil){
[employeeList removeObject:employeeReference];
}
この下のコードを使用して除去しようとすると(同じcontain
方法に起こります)。
removeObject
はisEqual: method
を基準に使用していると思いますので、2つのCKReferenceを比較すると、実際にはアドレスが比較されますが、文字列名には基づいていません。
isEqual
の実装を上書きして、CKReferenceのリストから特定のCKReferenceを削除するために自分自身を提供する必要があります。
これには代替方法がありますか?