我有一个简单的聊天,通常是关系聊天和消息。
聊天实体具有属性chatId-类型为Integer
消息实体具有属性chatId-类型为Integer
在聊天实体中,我使用简单(我认为)谓词创建了一个访存属性(messagesFP)
chatId == $FETCH_SOURCE.chatId
我与Id = 1聊天,并且聊天消息的属性chatId = 1。
但是messagesFP-返回空数组。
如果我将谓词更改为
chatId == 1
因此,messageFP返回正确的消息。
那么,如何编写正确的谓词以获取当前聊天的消息?
最佳答案
如果$ FETCH_SOURCE指向您的末尾的NSManagedObjectID
,则可能要尝试使用下面的类别进行更正。
这是Core Data Programming Guide中的重要引用。
这是我们开发人员必须最终提供的便利方法之一。在您的项目中,将some_moc
替换为您的托管对象上下文。
@implementation NSManagedObjectID (FetchSource)
- (id) valueForUndefinedKey:(NSString *)key {
//Attempt to unwrap the underlying object from the moc
NSManagedObject *mocObject = [some_moc objectWithID:self];
return [object valueForKey:key];
}
@end
希望对您有用!