Objective-C NSLogでBOOL型を表示するためには、フォーマット演算子は「%d」を使う
BOOL型とは、真/偽、Yes/No、True/Falseなどの2択を表現するときに使う型のことである。
Objective-Cではこの値はYES/NOで表現される。
実際に見てみよう。
BOOL isEnd; isEnd = YES; if (isEnd) { NSLog(@"YESなので終了します。"); } else { NSLog(@"NOなので続行します"); }
さて、このBOOL型の値をフォーマット指定しを使って表示したらどうなるか?
ちょっと意外かもしれないが、OBjective-CのBOOL値は、%dというフォーマット指定子を使う。
YESのときは1、NOのときは0で出力される。
BOOL isEnd; isEnd = YES; if (isEnd) { NSLog(@"isEndを出力すると?(YES:1|NO:0):%d",isEnd); } else { NSLog(@"isEndを出力すると?(YES:1|NO:0):%d",isEnd); }
結果、以下のように表示されます。
isEndを出力すると?(YES:1|NO:0):1
BOOL型は、0がNOで、それ以外の値はYESと判断されます。
ちょっと見てみましょう。
BOOL isEnd; isEnd = 100; if (isEnd) { NSLog(@"YESの場合はこっち(YES:1|NO:0):%d",isEnd); } else { NSLog(@"NOの場合はこっち(YES:1|NO:0):%d",isEnd); } BOOL isBoolZero; isBoolZero = 0; if (isBoolZero) { NSLog(@"YESはこっち:%d",isBoolZero); } else { NSLog(@"NOはこっち:%d",isBoolZero); }
結果、以下のように表示されます。
YESの場合はこっち(YES:1|NO:0):100 NOはこっち:0
ちなみに、YES/NOじゃなくても、TRUE/FAULSEでもOKです。
BOOL isTrue; isTrue = TRUE; if (isTrue) { NSLog(@"TRUEの場合はこっち(YES:1|NO:0):%d",isTrue); } BOOL isFalse; isFalse = FALSE; if (isFalse) { NSLog(@"hoge"); } else { NSLog(@"FALSEの場合はこっち:%d",isFalse); }
結果、以下のように表示されます。
TRUEの場合はこっち(YES:1|NO:0):1 FALSEの場合はこっち:0
現場で通用する力を身につける iPhoneアプリ開発の教科書 【iOS 7&Xcode 5対応】 (教科書シリーズ)
- 作者: 森巧尚,まつむらまきお
- 出版社/メーカー: マイナビ
- 発売日: 2014/01/25
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (4件) を見る