そして、結果の配列を取得し、そのように列挙するので
NSManagedObjectContext *moc = …;
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Restaurant"];
NSError *error = nil;
NSArray *results = [moc executeFetchRequest:request error:&error];
if (!results) {
DLog(@"Error fetching Restaurant objects: %@\n%@", [error localizedDescription], [error userInfo]);
abort();
}
のようなレコードをフェッチ:
NSMutableArray *newerRestaurantsArray = [NSMutableArray alloc] init];
for (id object in results){
//or use a block if you want
NSManagedObject *restaurant = (NSManagedObject *)object;
if (object.dateSaved > date a week ago){
[newRestaurantsArray addObject: object];
}
}
newRestaurantsArrayは、あなたが欲しいものを持っています。あなたがしたくないものを削除するか、それらのすべてを削除して、必要なものだけを元に戻す必要があります。保存する方法と実装方法を示すこのtutorialを見てください。
NSPredicate
を使用して、必要な結果のみを取得することもできます。あなたはthisの答えをチェックしてください。あなたの特定のケースのためにどのように見てください。
ありがとうございます!私は、それらを1つずつ削除してコンテキストを保存するか、それらのバッチを削除する必要があるかどうか、さらに心配していました。バックグラウンドスレッドでこれを行う必要がありますか?私はCore Dataの初心者ですので、複数のオブジェクトを削除するのにどれくらい時間がかかります。 – Rafi
もちろんバックグラウンドスレッドで実行できます。それはそれを逐次的に行うよりもはるかに複雑です。あなたが信頼できる良いコードを見つけることができたら、私は先に進んでasychをやるが、そうすることには大きな注意点がある。 – noobsmcgoobs
これについて考えると、おそらく 'NSPredicate'答えを見てみるべきです。それはそれを行う最も効率的な方法です。あなたの援助が早く必要なように見えたので、頭の上から答えを出すだけでした。私はコアデータを頻繁に使用しないので、完全な答えを返さなかったのはなぜですか?「NSPredicate」とスレッディングは、あまり上手くいきません。 – noobsmcgoobs