Xcodeに次のコードスニペットがあります。
_NSString *digit [[sender titlelabel] text];
NSLog([digit]);
_
アプリケーションをビルドしようとしましたが、次の警告メッセージが表示されますNSLog([digit]);
行
_Warning: Format not a string literal and no format arguments
_
この警告メッセージを解決する方法を教えてください。メッセージの実際の意味は何ですか?
次のコードを試してください。
NSString *digit = [[sender titlelabel] text];
NSLog(@"%@", digit);
このメッセージは、digit
変数を使用するための構文が正しくないことを意味します。メッセージを送信していない場合は、角かっこは必要ありません。
NSLog()
を次のように使用します。
_NSLog(@"The code runs through here!");
_
または、このように-プレースホルダーを使用:
_float aFloat = 5.34245;
NSLog(@"This is my float: %f \n\nAnd here again: %.2f", aFloat, aFloat);
_
NSLog()
では、+ (id)stringWithFormat:(NSString *)format, ...
のように使用できます
_float aFloat = 5.34245;
NSString *aString = [NSString stringWithFormat:@"This is my float: %f \n\nAnd here again: %.2f", aFloat, aFloat];
_
他のプレースホルダーも追加できます。
_float aFloat = 5.34245;
int aInteger = 3;
NSString *aString = @"A string";
NSLog(@"This is my float: %f \n\nAnd here is my integer: %i \n\nAnd finally my string: %@", aFloat, aInteger, aString);
_
なぜdigit
を囲んでいるのですか?そのはず
NSLog("%@", digit);
また、=
最初の行に...
NSString *digit = [[sender titlelabel] text];
NSLog(@"%@", digit);
コンソールに何が表示されますか?
警告で説明しようとするNSLogを使用する適切な方法は、リテラルを渡す代わりにフォーマッタを使用することです。
の代わりに:
NSString *digit = [[sender titlelabel] text];
NSLog(digit);
つかいます:
NSString *digit = [[sender titlelabel] text];
NSLog(@"%@",digit);
最初の方法でも引き続き機能しますが、この方法で行うと警告はなくなります。
タイプ:BOOL DATA(YES/NO)OR(1/0)
BOOL dtBool = 0;
OR
BOOL dtBool = NO;
NSLog(dtBool ? @"Yes" : @"No");
出力:いいえ
タイプ:ロング
long aLong = 2015;
NSLog(@"Display Long: %ld”, aLong);
出力:長い表示:2015
long long veryLong = 20152015;
NSLog(@"Display very Long: %lld", veryLong);
出力:非常に長い表示:20152015
タイプ:文字列
NSString *aString = @"A string";
NSLog(@"Display string: %@", aString);
OUTPUT:表示文字列:文字列
タイプ:フロート
float aFloat = 5.34245;
NSLog(@"Display Float: %F", aFloat);
出力:isplay Float:5.342450
タイプ:整数
int aInteger = 3;
NSLog(@"Display Integer: %i", aInteger);
出力:表示整数:3
NSLog(@"\nDisplay String: %@ \n\n Display Float: %f \n\n Display Integer: %i", aString, aFloat, aInteger);
OUTPUT:文字列:文字列
表示フロート:5.342450
表示整数:3
http://luterr.blogspot.sg/2015/04/example-code-nslog-console-commands-to.html