0

2 つのエンティティがあります: トラック: createdDate

場所: 高度 ...(「場所」にさらに 7 つの属性)

Track には、To-Many to Location を持つ 1 つの属性「createdDate」があります。

Track.createdDate == "whatever-date-i-want" のすべての場所を選択し直す必要があります (SQL では、簡単に結合できます)。

場所エンティティには「createdDate」属性がありません。これは、foreignKeys が CoreData 自体によって処理されると考えているためです。sqliteファイルを表示すると、データは完全に入っています.1つのトラックごとにたくさんの場所を見ることができます(GPSがそれらをCDにプロットするため)

述語を行う特別な方法だと思います。次の行を無駄に試しました:

NSPredicate *predicate = [NSPredicate predicateWithFormat: @"(Track.createdDate == %@)", currentTrack.createdDate];

しかし、うまくいきませんでした。また、次のようにプロパティをそこに入れてみました:

@property (nonatomic,retain) Track *lookupTrack;

そしてしようとしています:

NSPredicate *predicate = [NSPredicate predicateWithFormat: @"(lookupTrack.createdDate == %@)", currentTrack.createdDate];

また無駄に... アイデア?ありがとう

編集:ちょうど今私が試した:

NSPredicate *predicate = [NSPredicate predicateWithFormat: @"(ANY track.createdDate == %@)", currentTrack.createdDate];

「keypath createdDate not found in entity」というエラーが表示されました

NSPredicate *predicate = [NSPredicate predicateWithFormat: @"(ALL track.createdDate == %@)", currentTrack.createdDate];

「サポートされていない述語(null)」というエラーが表示されました

編集:ここにいくつかのスクリーンショットがあります ここに画像の説明を入力

ここに画像の説明を入力

4

2 に答える 2

0

申し訳ありません...それは私の種類でした...

私が持っていた

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"createdDate" ascending:NO];

あるべき場所

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"track.createdDate" ascending:NO];
于 2013-10-12T03:41:07.920 に答える