objective-c今日笔记

objective-c今日笔记,第1张

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

坚持写下日志。

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结束整个声明。

总结

以上是内存溢出为你收集整理的objective-c今日笔记全部内容,希望文章能够帮你解决objective-c今日笔记所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1056501.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存