2

印刷するには、以下の正しい形式は何*newStringですか?

NSString *newString = @"Hello this is a string!";
NSLog(@newString);
4

2 に答える 2

0

シンボルは、@いくつかの一般的な Objective-C オブジェクトを指定するための省略表現です。@"..."文字列 (NSString具体的には、通常の C 文字列とは異なります) を@[...]表し、配列 ( NSArray) を@{...}表し、辞書 ( NSDictionary) を表します。

最初の行では、記号NSStringを使用して既にオブジェクトを指定しています。インスタンスになりました。2 行目では、変数名を指定するだけです。@newStringNSString

NSLog(newString);

理論的には変数名を付けることもできますが、それは危険な方法です。フォーマット指定子がある場合、フォーマット指定子に対応する引数を読み取ろうとするが、引数が存在しないためnewString、アプリがクラッシュ/混乱する (またはアクセスしてはならないものにアクセスする) 可能性があります。NSLog安全な解決策はNSLog(@"%@", newString);. の最初の引数NSLogはハードコーディングされ、変更できなくなりました。これで、単一の引数が必要であり、その引数を提供していることがわかったnewStringので、安全です。

既に文字列を指定し、そのインスタンスを に渡しているだけなので、再度記号NSLogは必要ありません。@

于 2013-10-05T19:25:10.823 に答える