3

我正在使用核心数据和区域监控。区分受监控区域的唯一方法是使用 NSString 作为标识符。我很想使用 NSManagedObjectID,但我无法让它工作。

我试过的:

NSURL *objURL = [managedObjectID URIRepresentation];
NSError *err;
NSString *identifier = [NSString stringWithContentsOfURL:myURL
                                                encoding:NSASCIIStringEncoding
                                                   error:&err];

我得到的错误是:

The operation couldn’t be completed. (Cocoa error 256.)

任何更好的方法的想法?或者我做错了什么?

4

1 回答 1

9

您不应该获取. 尝试加载 URI 指向的资源;它使用适当的操作,具体取决于 URI 是or还是等。但它不知道如何处理URI,而且这也不是你想要做的。NSManagedObjectIDstringWithContentsOfURL:encoding:error:httpfileNSManagedObjectID

相反,我猜你想要做的是

 NSString*identifier=[objURL absoluteString];

这给出了 URL 的字符串表示。

我将添加 Marcus 的评论,以便每个人都会注意到:

请注意,objectID 可以而且确实会发生变化,尤其是在发生迁移时。不要依赖该值在应用程序的一次启动和下一次启动之间保持一致。

于 2010-08-19T06:48:21.147 回答