在覈心數據,我有一個物業實體,屬性類型整數16的當前頁。它是一類ATProperty
相關與標量屬性:核心數據取不返回的對象應該
@interface ATProperty : NSManagedObject
@property(nonatomic, assign) int16_t currentPage;
@end
@implementation ATProperty
@dynamic currentPage;
@end
現在我有以下的代碼來執行一個請求:
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Property"];
request.predicate = [NSPredicate predicateWithFormat:@"currentPage != 0"];
NSArray *results = [context executeFetchRequest:request error:nil];
大部分的時間,它按預期工作。但有時,我得到以下奇怪的結果:
(lldb)po results
<__NSArrayI 0x17e61300>(
)
(lldb)po [context executeFetchRequest:[NSFetchRequest fetchRequestWithEntityName:@"Property"] error:nil]
<_PFArray 0x17e9f3e0>(
<ATProperty: 0x17ec6400> (entity: Property; id: 0x19178e20 <x-coredata:///Property/t88822504-5974-42F5-B8D2-A62325064AFF28> ; data: {
currentPage = 9;
})
)
(lldb)p (BOOL)[request.predicate evaluateWithObject:0x17ec6400]
(BOOL) $12 = YES
所以在管理對象上下文中有一個實體實例。當我執行我的讀取請求時,Core Data不返回這個對象,它返回一個空數組。但是,如果我在上下文中存在的對象上測試相同的謂詞,則謂詞的求值爲YES
。這意味着對象應該在結果中。這怎麼可能?
您將錯誤信息傳遞給nil,表示您對此不感興趣。你有沒有看過那個? – user3071962
我沒有,因爲它返回一個(空)數組,所以不應該有錯誤。如果出現錯誤,它應該返回'nil'而不是數組。 – Guillaume
什麼是'performFetchRequest:error:'?這不是標準的核心數據方法。 –