1、问题
测试代码的时候,想能够向console中写一些值。对象和原始类型都能够用NSLog报告出来,但是它们都有着自己的字符串格式化器。
2、解决方案
将对象以及原始值替换进NSLog,就能够报告这些变量的值。
3、原理
NSLog(@"myCharacter = %c and myInteger = %i", myCharacter, myInteger);
Table 1-1. List of Specifiers Used with NSLog
Specifier Data Type
%@ Objective-C object (looks at description method)
%d, %D, %i Int (signed 32-bit integer)
%u, %U Unsigned int (unsigned 32-bit integer)
%f Double (64-bit floating point number)
%e Double (64-bit floating point number in scientific notation)
%c Unsigned char (unsigned 8-bit character)
%C Unichar (16-bit character)
%p Pointer (printed in hexadecimal)
%% Escape character so you can print the % sign
4、代码
#import <Foundation/Foundation.h>
int main(int argc, const char* argv[]) {
@autoreleasepool {
// To print out primitive types:
int myInteger = 1;
NSLog(@"myInteger = %i", myInteger); // Int (signed 32-bit integer)
float myFloatingPointNumber = 2;
// Double (64-bit floating point number)
NSLog(@"myFloatingPointNumber = %f", myFloatingPointNumber);
NSLog(@"myFloatingPointNumber in scientific notation = %e", myFloatingPointNumber);
char myCharacter = 'A';
NSLog(@"myCharacter = %c", myCharacter); // Unsigned char (unsigned 8-bit character)
// To print out the % symbol
NSLog(@"Percent Sign looks like %%");
// To print out Objective-C objects
NSString *myString = @"My String";
NSLog(@"myString = %@", myString);
NSLog(@"myString's pointer = %p", myString);
// To print out a series of values
NSLog(@"myCharacter = %c and myInteger = %i", myCharacter, myInteger);
}
return 0;
}