2016-11-18 11 views
2

ローカリゼーションでは、ローカライズされた文字列に%@を定義することができます。iOSは文字列を動的に定義します

しかし、私はこれと同じことをすることはできますか?私ができないなら、他の方法がありますか?私はそこから関数と呼び出しを記述したくありません。

#define MESSAGE @"Event - %@ is now saved in your calender." 
+4

'stringWithFormat:'を探しますか? https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/Strings/Articles/FormatStrings.html – clemens

答えて

3

マクロは動的ではありません。つまり、コンパイラは、MESSAGEを使用するどこでも@"Event - %@ is now saved in your calender."と書いています。

しかし、あなたはstringWithFormat:を使用して、実行時に%@プレースホルダを置き換えることができます。

#define MESSAGE @"Event - %@ is now saved in your calender." 
NSString *string = [NSString stringWithFormat:MESSAGE, @"EventName"]; 

stringは今、次のようになります。イベント - EVENTNAMEは今、あなたのカレンダーに保存されます。

+2

私はこれを探しています。ありがとうございます :) –

関連する問題