objective-c今日笔记

坚持写下日志。

printfNSlog区别

NSLog会自动加上换行符,不需要自己添加换行符,NSLog会加上时间和进程信息,而printf仅将输入的内容输出不会添加任何额外的东西。两者的输入类型也是有区别的NSLog期待NSString*,而printf期待const char *。最本质的区别在于NSLog输出的日志,在debug下面,NSLog的输出会被写到system.log,而printf是不具备日志属性的。

NSLog的定义

  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 无符整形%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位双字

声明以常见的先行短线和位于圆括号中的返回类型开头:

-(void)

参数类型在圆括号中指定,:号是方法名称最重要的组成部分。

如果方法使用参数就需要冒号,否则不需。

就Objective-C语言而言,创建一个类非常简单。它非常典型的分成了两个部分。

  类的接口通常保存在ClassName.h文件里,它定义了实例的参数,以及一些公开的方法。

  类的实现在ClassName.m文件里。它包含了真正运行的代码和那些方法。它还经常定义一些私有的方法。这些私有的方法对于子类是不可见的。

  这里有一个接口文件的大概。类名Photo,所以文件名叫Photo.h:

#div_code img { border: 0px none; }

  #import

  @interface Photo : NSObject {

  NSString* caption;

  NSString* photographer;

  }

  @end

 

  首先,我们把Cocoa.h import进来。Cocoa的应用程序的所有的基本的类大多都是这样做的。#import宏指令会自动的避免把同一个文件包含多次。

  @interface符号表明这是Photo类的声明。冒号指定了父类。上面这个例子父类就是NSObject。

  在大括弧里面,有两个变量:caption和photographer。两个都是NSString类型的。当然了,他们也可以是任何别的类型包括id类型的。

  最后@end结束整个声明。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值