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

Dmi*_*pov 10 core-data objective-c ios

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

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

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

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

chatId == $FETCH_SOURCE.chatId
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我和Id = 1聊天,聊天属性chatId = 1.

但是messagesFP - 返回空数组.

如果我将谓词改为

chatId == 1
Run Code Online (Sandbox Code Playgroud)

所以messagesFP返回正确的消息.

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

She*_*mus 2

如果 $FETCH_SOURCE 指向NSManagedObjectID您的一端,您可能需要尝试使用下面的类别来纠正该问题。

这是核心数据编程指南中的一个很好的参考。

这是我们开发人员必须提供的便利方法之一。在您的项目中,替换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
Run Code Online (Sandbox Code Playgroud)

我希望这对你有用!