如何纠正谓词CoreData Fetched属性的聊天和消息弱关系?

时间:2016-09-07 01:52:00

标签: ios objective-c core-data

我通常会通过关系聊天和消息进行简单的聊天。

聊天实体具有属性chatId - 类型为Integer

消息实体具有属性chatId - 类型为Integer

在聊天实体中,我创建了一个带有简单(我认为)谓词的抓取属性(messagesFP)

chatId == $FETCH_SOURCE.chatId

enter image description here

我与Id = 1聊天,以及属性chatId = 1的消息。

但是messagesFP - 返回空数组。

如果我将谓词改为

chatId == 1

所以messagesFP会返回正确的消息。

那么,如何编写正确的谓词来获取当前聊天的消息?

1 个答案:

答案 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

我希望这适合你!