定义实体的属性值

Define Entity's Attribute's Value

我正在尝试编辑 rawURL 以便它在我的应用程序包中找到正确的文件夹。我查看了 Apple's documentation,但是当我打开应用程序的 .xcdatamodeld 时,我要编辑其字符串值的属性似乎没有设置任何内容:

我查看了整个代码库,但找不到以编程方式设置的任何地方。但是,我在要更改的代码中放置了一个 print 语句,它实际上打印了一个字符串。我想更改此字符串的值,使其在 FindSpecies/[species name]/[img file] 而不是 FindSpecies/species/[species name]/images/[img file].

中查找
NSArray*    paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
        NSString*   cachePath = [paths objectAtIndex:0];
        NSString*   resourcePath = [[NSBundle mainBundle] resourcePath];
        NSLog(@"self.rawurl: %@", self.rawURL);
        NSString* stringURL = [self.rawURL stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];
        NSLog(@"stringURL: %@", stringURL);
        NSURL* url = [NSURL URLWithString:stringURL];
        NSString* path = [url path];
        NSString* query = [url query];
    //...
        returnString = [NSString stringWithFormat:@"%@/%@%@", resourcePath, kThumbnailDirectoryName, path]; 

如果我一开始就不知道 where/how 它的集合,我可以编辑 rawURL 吗?

编辑:这个应用程序是我教授的前研究生于 2011 年开发的。我正在对其进行现代化改造。

没有理由期望 rawURL 在您的屏幕截图中显示的模型编辑器中具有值。这定义了核心数据持久存储的模式,而不是数据。它可能有默认值,但不是必需的。

如果 rawURL 有一个值,那么它被设置在 某处 。你有源代码,所以你应该能够找到它。如果不能,请再看一遍,因为您可以看到它正在 某处 发生。如果您的实体有 NSManagedObject 的子 class,在 class 中的 rawURL 属性 声明处放置一个断点可能会有所帮助。值更改时应触发断点。

当然,您也可以随时在任何具有 属性 的对象实例上更改它。只需分配一个值,就像任何其他字符串 属性.