//--------------------------oc语言的历史
//------------------------import和include的区别; import可以防止头文件的重复包含 include不能防止头文件重复包含
以前在C语言中,#include关于重复包含问题 使用条件编译指令可以防止头文件的重复包含 #ifndef C7________xxx_h #define C7________xxx_h
#endif
foundation.h引入了,等于把OC的库文件都引入过来了
类库地址: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/
1)#import <Foundation/Foundation.h>, 告诉编译器找到并处理名为Foundation.h文件,这是一 个系统文件,#import表示将该文件的信息导入到程序中。
在C和C++中采用#include指令,在本例中也可以采用#include,而#import是#include改进指令,它 可以防止头文件重复包含问题。
2)int main(int argc, const char * argv[]),这个方法是程序的入口。参数argc-参数数 目,argv-参数值。
3)@autoreleasepool{ }这是一个自动释放池,用于回收对象的存储空间
4)NSLog是Foundation框架提供的Objective-C日志输出函数,与标准C中的printf函数类似,并可 以格式化输出。 @“Hello, World!”,是代表NSString字符串对象,它是Objective-C常用的字符串类。
5)最后是return 0语句,它表示要终止main的执行,一般情况下0代表正常结束,非0代表异常情况, 这是沿用了C语言的习惯。
//手动敲3遍这个main函数 #import <Foundation/Foundation.h>
int main(){
@autoreleasepool{
NSLog(@"test");
}
}
打印字符串使用%s NSString创建的字符串 是一个对象,打印需要使用%@
//-----------------------NSLog 和printf的区别: 1,NSLog可以自动换行, 输出调试信息, printf不能. 2,NSLog 函数的参数是一个NSString 对象 3,printf函数的参数是一个字符串常量指针
NS -- > NeXT softWare
//--------------------------@符号的含义: 1,@“” 将双引号的C字符串转换为OC的字符串对象NString; 2,OC中的一个特有标示符,很多关键字前面都加@。
四,OC可以访问C源文件中的函数。C不能访问OC中的源文件中的方法。(这里其实是向下兼容)
//---------------------------语言特点 //源文件对比: 1,C中常见的源文件有.c 和 .h ; 2,OC中常见的源文件有.h 和 .m ;
//基本语法对比: 1,数据类型对比: 首先OC兼容C中的所有数据类型; OC新增了boolean类型、block类型、对象类型、特殊类型SEL和nil 等; 另外,C中不兼容OC中新增的类型;
//流程控制语句对比; 首先OC兼容了C中所有的流程控制语句; OC又新增了自己的for in 增强型的循环语句; //OC中的增强型for循环 for(NSString *str in arr){ NSLog(@"%@",str); }
//函数和方法定义声明的对比; //C语言中函数的声明和实现 i.函数声明: int sum(int a,int b);
ii.函数定义 int sum(int a,int b){ return a+b; }
//OC语言中函数习惯称之为“方法” i.方法声明: -(int)sum:(int) a and:(int) b;
ii.方法定义 -(int)sum:(int) a and:(int )b{ return a+b; }
boolean 底层的设计是 无符号的char 取值为 true和false BOOL 取值 YES为真 NO为假
|