2013-10-22 73 views
0

我有兩個實體卡和CardStatus,存儲在不同的持久性存儲中。卡片還包含一個提取的屬性「userData」,該屬性用於從CardStatus中檢索與卡實體對應的狀態。這工作正常。以提取屬性爲條件的核心數據NSPredicate?

我想在卡上執行提取請求,同時使用我的fetched屬性作爲謂詞中的條件。技術上可行嗎?

NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
request.entity = [NSEntityDescription entityForName:@"Card" 
             inManagedObjectContext:delegate.managedObjectContext]; 
request.predicate = [NSPredicate predicateWithFormat:@"userData.externalKey != nil"];    
NSArray *results = [delegate.managedObjectContext executeFetchRequest:request error:&error]; 

但我收到以下異常:

**終止應用程序由於未捕獲的異常 'NSInvalidArgumentException',原因是:「的keyPath userData.externalKey 在實體沒有發現

發生了什麼?

+0

什麼是userData.externalKey?這個屬性是卡實體嗎? – karthika

+0

userData是獲取的屬性(在實體** Card **中),而externalKey是實體** CardStatus **的屬性。 – Micky1407

+0

不知道答案,但是您是否已經閱讀了關於核心數據手冊中提取屬性的部分? https://developer.apple.com/library/mac/documentation/cocoa/conceptual/coredata/Articles/cdRelationships.html#//apple_ref/doc/uid/TP40001857-SW7 – nielsbot

回答