のための一時属性で[OK]を、私は最初に私のNSManagedObject
サブクラス内のプロパティに基づいてソートするNSFetchedResultsController
の要求のNSSortDescriptor
を作りたかったのですが、NSFetchedResultsControllerが述語に制限され、ソートので、それは明らかに、それを行うことはありません私がデータモデルで一時的な属性を作成し、この属性のプロパティを合成してNSManagedObject
サブクラスにivarし、それに基づいてソートすることにしました。それを実行しているとき、私は、これはKVOの問題である知っているので、私は+ (NSSet*)keyPathsForValuesAffectingIsActive
を追加したが、それでも同じ問題を持っている'NSInvalidArgumentException', reason: 'keypath isActive not found in entity <NSSQLEntity SMSourceEntity id=2>'
NSSortDescriptorがNSFetchedResultsController
をフェッチ実行中
、私は得ました。
私は何が間違っていたのですか、それとも私のキーパスを見つけるために何かが欠けていますか?ありがとう。
コード:
@implementation SMSourceEntity
@dynamic friendlyName;
@dynamic interfaceAddress;
@dynamic uniqueID;
@dynamic network;
@synthesize isActive = _isActive;
+ (NSSet*)keyPathsForValuesAffectingIsActive
{
return [NSSet setWithObject:@"isActive"];
}
@end
私sortDescriptor:
request.sortDescriptors = [NSArray arrayWithObjects:[NSSortDescriptor sortDescriptorWithKey:@"isActive" ascending:NO] , nil];
私は一時的なプロパティを自分のFRCで動作させたい場合は、サブクラス化してフェッチされた結果を取得し、didChangeContentのプロパティに基づいてフェッチされたオブジェクトの配列をソートする必要があります。それは理にかなっていますか? – ambientlight
多くのコードを書いたり、FRCを使うことのメリットのほとんどを捨てなければならないので(これは、ページ指定されたオンデマンドローディングのように)、非常に難しいと思います。おそらく、ケースバイケースで他のオプションを考慮する必要があります。さまざまなセクションやそのようなものに複数のFRCを使うのと同じです。 – Wain
完璧に感謝します、ありがとう。 – ambientlight