iOS MagicalRecord:加入

Posted

技术标签:

【中文标题】iOS MagicalRecord:加入【英文标题】:iOS MagicalRecord: Join 【发布时间】:2013-11-23 21:34:20 【问题描述】:

我想从 B.ID = A.ID (JOIN A/B) 的表 B 中获取所有记录。因此,我创建了一个传递对象 A 的方法,使用谓词:

-(NSArray*) getRecordFromB:(A*) a
    NSManagedObjectContext *localContext = [NSManagedObjectContext MR_contextForCurrentThread];    
    NSPredicate *predicate1 = [NSPredicate predicateWithFormat:@"a == %@", a];

    //Return notes from pin
    return [B MR_findAllWithPredicate:predicate1 inContext:localContext];

而且,它运行良好。但是,我认为更好(我想保留内存)所以我只将 ObjectID 传递给方法以进行连接。我将方法更改为:

-(NSArray*) getRecordFromB:(NSO*) a
    NSManagedObjectContext *localContext = [NSManagedObjectContext MR_contextForCurrentThread];    
    NSPredicate *predicate1 = [NSPredicate predicateWithFormat:@"a.objectID == %@", a];

    //Return notes from pin
    return [B MR_findAllWithPredicate:predicate1 inContext:localContext];

但是没有用,因为我的模型 A 上没有这个属性。有没有更好的方法来连接两个表?还是我使用我的第一种方法?

【问题讨论】:

【参考方案1】:

您可以在获取请求中只传递对象 id 而不是托管对象:

[NSPredicate predicateWithFormat:@"a == %@", a.objectID];

完全一样
[NSPredicate predicateWithFormat:@"a == %@", a];

如果你已经有了“A”对象,那么如果 您将aa.objectID 传递给获取请求。

【讨论】:

以上是关于iOS MagicalRecord:加入的主要内容,如果未能解决你的问题,请参考以下文章

Magical Record 不会保存到 SQLite 文件

iOS MagicalRecord:加入

ios Magical Record 保存在 UIApplicationWillTerminateNotification

ios Magical Record保存在UIApplicationWillTerminateNotification上

AFNetworking 的 Magical Record 导入问题

尝试将 Magical Record 与 Kiwi 一起使用时构建测试时出错