ある時点で Core Data fetch を使用して一連のデータを取得し、XCode で通常の Core Data の方法で作成され、したがって から派生したオブジェクトを に挿入するクラスがありNSManagedObject
ますNSMutableSet
。状況によっては、これらのオブジェクトの一部が他のいくつかのセットになる可能性があります。ここまでは順調ですね。
しかし、その後、次のことが起こります。
NSMutableArray* anArray = [NSMutableArray alloc] init;
[currentResults minus:previousResults]; // both are NSMutableSets
for(MyObject* obj in currentResults)
{
[anArray addObject:[createAnnoFromMyObject:obj]]; // nastiness happens here
}
createAnnoFromMyObj:
からデータを取り出して、をobj
実装するオブジェクトを返すだけMKAnnotation
です。
問題は、使用可能な注釈の配列を取得しても、currentResults
、 、およびによって触れられた のpreviousResults
いずれかを参照するその他のオブジェクトが最終的に破棄されることです。MyObject
createAnnoFromMyObject:
ゴミ箱に入れられたとは、それらにアクセスしようとすると、次の行に沿って例外が発生することを意味します
-[MyObject beginningOfDocument]: unrecognized selector sent to instance...
コマンドを使用してデバッガー ペインでこれらのコレクションのいずれかを表示しようとすると、同じことが起こりますpo
。
MyObject
Core Data で再生成を試みましたが、うまくいきませんでした。Google ではこのセレクターについての言及はほとんどbeginningOfDocument
なく、何が間違っているのかわかりません。おそらくこの問題を解消する回避策がありますが、何が起こっているのかを知ることは本当に素晴らしいことです.