定义实体属性值
Posted
技术标签:
【中文标题】定义实体属性值【英文标题】:Define Entity's Attribute's Value 【发布时间】:2017-06-20 05:15:29 【问题描述】:我正在尝试编辑rawURL
,以便它在我的应用程序包中的正确文件夹中查找。我查看了Apple's documentation,但是当我打开我的应用程序的.xcdatamodeld
时,我要编辑其字符串值的属性似乎没有设置为任何内容:
我查看了整个代码库,但找不到以编程方式设置的任何地方。但是,我在要更改的代码中放置了一条打印语句,它实际上打印了一个字符串。我想改变这个字符串的值,使它看起来在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 年构建的。我正在对其进行现代化改造。
【问题讨论】:
你为什么要这样做?为什么不直接使用NSBundle pathForResource:ofType:
资源的完整路径也可以改变。
@JonRose,我应该为我的教授提一下,我正在修复一个由他的前研究生在 2011 年构建的应用程序。
【参考方案1】:
没有理由期望rawURL
在您在屏幕截图中显示的模型编辑器中具有值。这定义了 Core Data 持久存储的模式,而不是数据。它可能有默认值,但不是必需的。
如果rawURL
有一个值,那么它被设置在某处。你有源代码,所以你应该能够找到它。如果您不能,请再看一遍,因为您可以看到它正在某处发生。如果您的实体具有NSManagedObject
的子类,则在该类中的rawURL
属性声明处放置一个断点可能会有所帮助。断点应在值更改时触发。
当然,您也可以随时在具有该属性的任何对象实例上更改它。只需分配一个值,就像任何其他字符串属性一样。
【讨论】:
以上是关于定义实体属性值的主要内容,如果未能解决你的问题,请参考以下文章