定义实体的属性值

时间:2017-06-20 05:15:29

标签: ios core-data xcdatamodel

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

enter image description here

我查看了整个代码库,我无法以编程方式找到它。但是,我在代码中添加了一个打印语句,我希望更改它,并且它确实打印了一个字符串。我想更改此字符串的值,以便它在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]; 

我是否可以编辑rawURL如果我甚至不知道它首先在哪里/如何设置?

编辑:这个应用程序是由我的教授以前的研究生在2011年建立的。我正在进行现代化改造。

1 个答案:

答案 0 :(得分:0)

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

如果rawURL有值,则表示设置某处。你有源代码,所以你应该能够找到它。如果你不能再看一遍,因为你可以看到在某个地方发生。如果您的实体具有NSManagedObject的子类,则可能有助于在该类的rawURL属性声明中放置断点。断点应该在值发生变化时触发。

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