注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

民主与科学

独立之人格,自由之思想

 
 
 

日志

 
 

NSLog简介  

2015-04-21 20:03:59|  分类: iOS |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
一、基本
在Objective-C中,NSLog相当于C语言中的printf,常用于文字输出。
NSLog定义在NSObjCRuntime.h中,如下所示:

void NSLog(NSString *format, …);

基本上,NSLog很像printf,同样会在console中输出显示结果。不同的是,传递进去的格式化字符是NSString的对象,而不是char *这种字符串指针。
二、示例
NSLog可以如下面的方法使用:
NSLog (@"this is a test");
NSLog (@"string is :%@", string);
NSLog (@"x=%d, y=%d", 10, 20);
但是下面的写法是不行的:
int i = 12345;
NSLog( @"%@", i );
原因是, %@需要显示对象,而int i明显不是一个对象,要想正确显示,要写成:
int i = 12345;
NSLog( @"%d", i )。
三、格式化输出
NSLog的格式如下所示:
%@
对象
%d, %i
整数
%u,%z
无符整形
%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位双字
%hhd BOOL布尔类型
四、description方法
JAVA中的对象都有从Object中继承而来的String toString()方法,用于获取对象的字符串表示,
Object-C 中的这个方法的方法签名为:

-(NSString*) description;

由于这是NSObject 中的成员方法,因此我们就不必在Fraction.h 文件中声明它了,直接在
Fraction.m 中实现如下所示:

-(NSString*) description{
return @"I am a fraction!";
}

编写main 函数访问:

int main(int argc,const char *argv[]){
Fraction *frac=[[Fraction alloc] initWithNumerator: 2 andDenominator: 3];
NSLog(@"%@",frac);
return 0;
}

这里我们看到NSLog 输出对象用的格式化字符串是%@,这样description 方法就会被调用。
如果我们不实现自己的description,那么会调用NSObject 的实现,输出对象的首地址。
结束!
  评论这张
 
阅读(256)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017