ここで私はClipTableという名前のエンティティを持っています。私はすべてのユーザのクリップ関連情報をすべて取得していますが、 NSUserDefaultsを使用してuser_idを保存しています。私のクリップテーブルには、created_by_userという名前の属性があります。これは基本的に、クリップを格納している特定のユーザーのユーザーIDです。だからNSUserDefaultsからこのcreated_by_user属性とuser_idを使用して私は両方が同じかどうかをチェックしたい。両方が同じであれば、その特定のユーザーのクリップレコードのみを取得します。以下は、NSFetchResultControllerを使用してtableView内のすべてのユーザのすべてのクリップレコードを表示できるコードです。しかし、今私は特定のユーザーのためのレコードを取得したい。これをするのは難しい時です。どんな助けもありがとうございます。NSUserDefaultsとCoreData属性を一致させ、両方が同じ場合のデータを取得する方法
-(void)fetch:(NSString*)catgeory :(BOOL)All{
AppDelegate *delegate = [[UIApplication sharedApplication] delegate];
self.managedObjectContext = delegate.managedObjectContext;
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"ClipTable"];
// Add Sort Descriptors
[fetchRequest setSortDescriptors:@[[NSSortDescriptor sortDescriptorWithKey:@"modifieddate" ascending:NO]]];
//_fetchedResultsController=nil;
// Initialize Fetched Results Controller
self.fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:nil cacheName:nil];
if (All==NO) {
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"(page_categorisation == %@)",catgeory]];
}
[fetchRequest setFetchBatchSize:0];
// [fetchRequest setFetchLimit:10];
// Configure Fetched Results Controller
[self.fetchedResultsController setDelegate:self];
// Perform Fetch
NSError *error = nil;
[self.fetchedResultsController performFetch:&error];
if (error) {
NSLog(@"Unable to perform fetch.");
NSLog(@"%@, %@", error, error.localizedDescription);
}
}
は、どのように私は... fetchresultControllerに述語を渡す必要があります。それはエラーが – vicky
を@Pandey_Laxman与え述語[fetchRequest setPredicate:述語] (すべて==いいえ) –
if(All = no)のロジックがわからないときは、毎回その呼び出しが[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@ "(page_categorisation ==% @ AND created_by_user ==%@) "、catgeory、currentLoggedInUser]]; その他の条件 [fetchRequest setPredicate:[NSPredicate predicateWithFormat:@ "(created_by_user ==%@)"、currentLoggedInUser]]; –