2017-06-20 41 views
0

我試圖編輯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年建成的。我正在對其進行現代化改造。

+0

你爲什麼要這樣做?爲什麼不使用'NSBundle pathForResource:ofType:'也可以改變資源的完整路徑。 –

+0

@JonRose,我應該提到,對於我的教授,我正在修復他的前研究生在2011年建立的應用程序。 – Matt

回答

0

沒有理由期望rawURL在您的屏幕截圖中顯示的模型編輯器中具有值。它定義了Core Data持久性存儲的模式,而不是數據。它可能有默認值,但這些不是必需的。

如果rawURL有一個值,那麼它的設置是某處。你有源代碼,所以你應該能夠找到它。如果你不能,再看一遍,因爲你可以看到它發生在的某處。如果您的實體具有NSManagedObject的子類,則可以幫助在該類的rawURL屬性聲明中放置斷點。任何時候值的變化都會觸發斷點。

你當然也可以隨時在任何有屬性的對象實例上更改它。只需分配一個值,就像其他字符串屬性一樣。