A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© CcrazyOne 中级黑马   /  2015-10-12 00:20  /  830 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

//--------------------------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为假

1 个回复

倒序浏览
上面写的其实并不是很详细,大家尽量去看如果有什么问题的话可以私信我然后我再解答
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马