2017-06-20 11 views
0

rawURLを編集して、アプリケーションバンドル内の正しいフォルダを探します。私はApple's documentationを見て、私は自分のアプリケーションの.xcdatamodeldを開いたときに、その文字列値Iが編集しているよ属性は、何も設定されて表示されませんでした:エンティティの属性の値を定義

enter image description here

私は全体で見コードベースであり、プログラム的にどこにでも設定することができませんでした。しかし、私は変更しようとしているコードに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]; 

私はrawURLを編集することはできますか?

編集:このアプリは私の教授の元大学院生によって2011年に建てられました。私はそれを近代化する過程にある。

+0

なぜこれをやりますか? 'NSBundle pathForResource:ofType:'だけを使用するのではなく、リソースのフルパスも変更できます。 –

+0

@JonRose、私は教授のために、元の大学院生が2011年に作ったアプリを修正していることを言及しておきます。 – Matt

答えて

0

rawURLにスクリーンショットに表示されるモデルエディタの値があるとは限りません。これは、データではなくコアデータ永続ストアのスキーマを定義します。それはデフォルト値を持つかもしれませんが、それらは必須ではありません。

rawURLに値がある場合は、のどこかにと設定されています。あなたはソースコードを持っているので、それを見つけることができます。もしあなたができなければ、再び見てください。それは、起きていることがわかるので、どこかでです。エンティティのサブクラスがNSManagedObjectの場合、そのクラスのrawURLプロパティ宣言にブレークポイントを設定すると役立ちます。ブレークポイントは、値が変化するたびにトリガする必要があります。

プロパティを持つオブジェクトインスタンスでいつでも変更することもできます。他の文字列プロパティと同様に値を代入するだけです。

関連する問題