0

所以我迷失在這一個。我正在嘗試使用謂詞獲取父對象的子對象。如果我取出謂詞線,它會返回所有特定的帖子。所以我非常肯定它與謂詞有關的一個問題。任何幫助將不勝感激!以下是我的設置。iOS NSPredicate通過父實體過濾核心數據

AccountTimeLine - > SpecificPosts(一對多)

核心數據模型: enter image description here

enter image description here

讀取的結果控制器:

- (void)specificPostFetch 
{ 
    DataAccessLayer *delegate = [[DataAccessLayer alloc]init]; 
    self.managedObjectContext = delegate.managedObjectContext; 
    NSString *entityName = @"SpecificPosts"; 
    NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:entityName]; 
    request.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"createdDateSort" ascending:YES]]; 
    request.predicate = [NSPredicate predicateWithFormat:@"accountTimeLine = %@", self.accountTimeLineObject]; 
    [request setFetchBatchSize:20]; 
    self.specificPostFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:request managedObjectContext:self.managedObjectContext sectionNameKeyPath:nil cacheName:nil]; 
    self.specificPostFetchedResultsController.delegate = self; 
    [self.specificPostFetchedResultsController performFetch:nil]; 
} 

打印出是accountTimeLineObject的用於比較謂詞

po self.accountTimeLineObject 
<AccountTimeLine: 0x7c087b70> (entity: AccountTimeLine; id: 0x7c086590 <x-coredata://353F201D-E739-4DD0-BEBF-DAD6101CFE51/AccountTimeLine/p72> ; data: { 
    accountType = 0; 
    nextPageUrl = 515986477864337411; 
    sort = 0; 
    specificPosts = "<relationship fault: 0x7c634590 'specificPosts'>"; 
    userAccountId = 582; 
}) 

回答

0

嘗試把==在你的謂語,而不是單一=:

request.predicate = [NSPredicate predicateWithFormat:@"accountTimeLine == %@", self.accountTimeLineObject]; 
+0

是啊,我嘗試過這一點。不會改變任何東西。不確定這些謂詞中是否存在==和=之間的差異?我也嘗試添加ObjectId像這樣「request.predicate = [NSPredicate predicateWithFormat:@」accountTimeLine ==%@「,[self.accountTimeLineObject objectID]];」那也沒用。任何其他想法? – mikemike396 2014-09-28 00:15:49

+0

你有錯誤,或者只是一個空數組? – pbasdf 2014-09-28 00:19:06

+0

當我在cellForRow上放置一個斷點時,空結果控制器。當我註釋謂詞行時,我返回了40個對象。 (lldb)po [self.specificPostFetchedResultsController.fetchedObjects count]; mikemike396 2014-09-28 00:21:02

相關問題