2012-03-29 14 views
1

渡された "artistID"に基づいてビューの背景イメージを設定しようとしています。ここに私のコードは、これまでのところです:Objective Cの@ ""文字をエスケープする

NSString *backgroundImageName = [[NSString alloc]initWithFormat:@"artistbackground%i.png",_artistID]; 


    self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:backgroundImageName]]; 
    NSLog(@"%@",backgroundImageName); 

残念ながら、ImageNamedにパラメータの、私が渡している:任意の "artistbackgound1" @

を: artistibackground1

の代わりに、 @と引用符をエスケープする方法に関するアイデア??

ありがとうございます!

+1

Hunh? 'imageNamed'メソッドから' UIImage'を作成するには、ファイル名*だけを含む文字列が必要です。 '@" "構文は単に([[NSString alloc] init ...]'を呼び出さずに)NSStringを直接簡単に作成できる特別な構文です。上記のコードが機能していない場合は、他の問題があります。 2番目の文字列の中に '@" "を作成する必要はありません! –

答えて

1
self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:[NSString stringWithFormat:@"@%@",backgroundImageName]]; 

基本的に2つの文字列を作成すると、2番目の文字列に@ ""が追加されます。

+0

Sean Erricは正しいです。ありがとうございました。Erric – WaaleedKhan

+0

私はあなたに小切手を差し上げます。しかし、私はこれがうまくいくことがわかりました:self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:[NSString stringWithFormat:@ "@ \"%@ \ ""、backgroundImageName]]]; –

+1

しかし、文字列が正しくなっていてもイメージはまだ読み込まれません。なぜどんなアイデア? –

0

必要な文字の前に\を使用する必要があります。例:

NSLog(@"\@\"Try\""); 

コードが印刷さ

@"Try" 
-1

も文字列定数は、Objective-CでオブジェクトをNSStringのしていることを忘れないでください。これは魔法の一部です!私は頻繁に言語の書き込みに新しいプログラマーを参照してください。この行:

[@"@" stringByAppendingString:backgroundImageName]; 

マジック:あなたはこのラインを簡素化することができます

[NSString stringWithFormat:@"@%@",backgroundImageName]; 

しかし!

関連する問題