ios - 提取请求,该请求返回coredata URL。为什么?以及如何访问托管对象?

标签 ios objective-c core-data

我必须执行“复杂”的提取请求才能实现group by操作。
在此请求中,我需要获取2个值,其中一个是关系,而不是属性。

下面是创建此请求的代码:

// Create the request

NSFetchRequest *request = [[NSFetchRequest alloc]initWithEntityName:@"Entry"];


// Create Sum Expression

NSExpression *ex = [NSExpression expressionForFunction:@"sum:"
                                             arguments:[NSArray arrayWithObject:   
                                                       [NSExpression expressionForKeyPath:@"amount"]]];
NSExpressionDescription *ed = [[NSExpressionDescription alloc] init];

[ed setName:@"totalAmount"];
[ed setExpression:ex];
[ed setExpressionResultType:NSInteger64AttributeType];


// Add properties and group by

[request setPropertiesToFetch:@[ed,THERELATIONSHIP]]; // properties
[request setResultType:NSDictionaryResultType]; // result type
[request setPropertiesToGroupBy:THERELATIONSHIP];    // group by

通过此请求,我可以正确获取按NSExpression分组的THERELATIONSHIP值。对于获取的请求,此关系用URL 表示为(我想这是因为我通过`setResultType强制将结果作为NSDictionary。
问题1:您能否确认此理论是正确的?)

URL具有以下格式:
0x8db2c60 <x-coredata://F1C06CE8-E610-4207-A388-1FDB8FFA8A2F/THERELATIONSHIP/p1>

问题2:如何从此URL访问ManagedObject?

最佳答案

尝试在managedObjectIDForURIRepresentation:上使用NSPersistentStoreCoordinator将URI转换为NSManagedObjectID。一旦获得了管理对象ID,就可以在objectRegisteredForID:上使用NSManagedObjectContext

关于ios - 提取请求,该请求返回coredata URL。为什么?以及如何访问托管对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20970224/

相关文章:

ios - 在 Interface Builder 上,将 UILabel 连接到自定义 UIView IBOutlet

ios - -[__NSCFNumber 计数] : unrecognised selector sent to instance 0x14539180 in Swift

objective-c - 我可以访问用于 Core Data 中外部二进制存储的文件吗?

ios - 未调用 FCM didReceiveRemoteNotification

ios - 在 TestFlight 上进行应用内购买,但从 App Store 下载时

ios - Swift 同时流式传输 2 个视频

objective-c - iPad(第一代)的着色器文件警告

ios - 如何将数据传递给以编程方式创建的 subview Controller

ios - 如何为 setFrame : with auto layout in Objective-C 设置动画

ios - 如何将属性数据从实体加载到单个 (1) UIViewController 中?