我有一个简单的聊天,通常是关系聊天和消息。

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

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

在聊天实体中,我使用简单(我认为)谓词创建了一个访存属性(messagesFP)

chatId == $FETCH_SOURCE.chatId

ios - 如何更正谓语“聊天和消息”弱关系的谓词“获取核心数据”属性?-LMLPHP

我与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

希望对您有用!

10-08 02:43