数据输出

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_31928443/article/details/52767339

 几种常用类型变量声明

    int i =10;  

    BOOL isShow=YES; 

    BOOL isShow=1;  

    float f = 3.1415926;  

    char a =120;  

    NSString *name =@"Himi";

    object-c中BOOL类型长度1byte, 若将short或int型数赋值给BOOL类型则截取低位1个字节.

    object-c  中字符串类型的声明和java,C# 有点不一样,string 在面向对象语言中是一个引用类型,在object-c中是使用指针

2. NSLog常用的几种输出

   //常用类型的定义
   int  i =10;
   BOOL  isShow=TRUE;
   float  f = 3.1415926;
   char  a =120;
   NSString  *name =@ "Himi" ;
   //常用打印语句
   NSLog (@ "字符串:%@" ,name);
   NSLog (@ "字符:%c" ,a);
   NSLog (@ "布尔值:%i" ,isShow);
   NSLog (@ "整形:%i" ,i);
   NSLog (@ "单精度浮点数: %f" ,f);
   NSLog (@ "精度浮点数,且只保留两位小数:%.2f" ,f);
   NSLog (@ "科学技术法:%e" ,f);
   NSLog (@ "科学技术法(用最简短的方式):%g" ,f);
   NSLog (@ "同时打印两个整数:i=%i,f=%f" ,i,f);
补充:
使用NSLog的一个风险是:它的运行会占用时间和设备资源。
简单而粗暴的解决方案是:在release前,将所有的NSLog注释掉。简单有效,但副作用是:下次你要调试时,又得将NSLog一个个取消注释。
以release模式编译的程序不会用NSLog输出,而以debug模式编译的程序将执行NSLog的全部功能。
解决步骤:
1.修改<AppName>-Prefix.pch ,增加以下的宏代码

#ifdef DEBUG

#define WQString [NSString stringWithFormat:@"%s", __FILE__].lastPathComponent

#define WQLog(...) printf("%s %s %d: %s\n\n",__TIME__ ,[WQString UTF8String] ,__LINE__, [[NSString stringWithFormat:__VA_ARGS__] UTF8String]);

    

#else

#define WQLog(...)

#endif

在程序中使用DLog来替换原来的NSLog

DLog(@"当前目录:%@", [self applicationDocumentsDirectory ]); 

  1) __VA_ARGS__ 是一个可变参数的宏,很少人知道这个宏,这个可变参数的宏是新的C99规范中新增的,目前似乎只有gcc支持(VC6.0的编译器不支持)。宏前面加上##的作用在于,当可变参数的个数为0时,这里的##起到把前面多余的","去掉的作用,否则会编译出错, 你可以试试。
  2) __FILE__ 宏在预编译时会替换成当前的源文件名
  3) __LINE__宏在预编译时会替换成当前的行号
  4) __FUNCTION__宏在预编译时会替换成当前的函数名称

  以上是几种常用的NSLog 输出的格式化例子,非常简单。但是和.net 的确有很大的不一样,对于习惯了.net的人来说改变这种习惯的确是有点难度的

3. 从其他地方找来一个object-c比较全的数据类型说明图

     

%@     对象

%d, %i 整数

%u     无符整形

%f     浮点/双字

%x, %X 二进制整数

%o     八进制整数

%zu    size_t

%p     指针

%e     浮点/双字 (科学计算)

%g     浮点/双字

%s     C 字符串

%.*s   Pascal字符串

%c     字符

%C     unichar

%lld   64位长整数(long long)

%llu   无符64位长整数

%Lf    64位双字

%e 是实数,用科学计数法计的

猜你喜欢

转载自blog.csdn.net/qq_31928443/article/details/52767339