我通常会通过关系聊天和消息进行简单的聊天。
聊天实体具有属性chatId - 类型为Integer
消息实体具有属性chatId - 类型为Integer
在聊天实体中,我创建了一个带有简单(我认为)谓词的抓取属性(messagesFP)
chatId == $FETCH_SOURCE.chatId
我与Id = 1聊天,以及属性chatId = 1的消息。
但是messagesFP - 返回空数组。
如果我将谓词改为
chatId == 1
所以messagesFP会返回正确的消息。
那么,如何编写正确的谓词来获取当前聊天的消息?
答案 0 :(得分:2)
如果$ 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
我希望这适合你!