码迷,mamicode.com
首页 > 其他好文 > 详细

OC2

时间:2015-09-01 01:20:00      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:

1.局部变量和全局变量以及成员变量的区别

写在类声明的大括号中的变量, 我们称之为 成员变量(属性, 实例变量)

成员变量只能通过对象来访问

注意: 成员变量不能离开类, 离开类之后就不是成员变量,成员变量不能在定义的同时进行初始化

存储: 堆(当前对象对应的堆的存储空间中)

存储在堆中的数据, 不会被自动释放, 只能程序员手动释放

 

 

写在函数和大括号外部的变量, 我们称之为全局变量

作用域: 从定义的那一行开始, 一直到文件末尾

局部变量可以先定义在初始化, 也可以定义的同时初始化

存储: 静态区

程序一启动就会分配存储空间, 直到程序结束才会释放

 

写在函数或者代码块中的变量, 我们称之为局部变量

作用域: 从定义的那一行开始, 一直到遇到大括号或者return

局部变量可以先定义再初始化, 也可以定义的同时初始化

存储 : 栈

存储在栈中的数据有一个特点, 系统会自动给我们释放

 

2.函数和方法的区别

 1.函数属于整个文件, 方法属于某一个类

 方法如果离开类就不行

 2.函数可以直接调用, 方法必须用对象或者类来调用

 注意: 虽然函数属于整个文件, 但是如果把函数写在类的声明中会不识别

 3.不能把函数当做方法来调用, 也不能把方法当做函数来调用

 

 方法的注意点:

 >方法可以没有声明只有实现

 >方法可以只有声明没有实现, 编译不会报错, 但是运行会报错

 如果方法只有声明没有实现, 那么运行时会报: 

 reason: ‘+[Person demo]: unrecognized selector sent to class 0x100001140‘

 发送了一个不能识别的消息, 在Person类中没有+开头的demo方法

 reason: ‘-[Person test]: unrecognized selector sent to instance 0x100400000‘

 

 

 类也有一个注意点:

 类可以只有实现没有声明

 注意: 在开发中不建议这样写

 

3.常见错误:

1.只有类的声明,没有类的实现

2.漏了@end

3. @interface和@implementation嵌套

4.成员变量没有写在括号里面

5.方法的声明写在了大括号里面

6.成员变量不能在{}中进行初始化、不能被直接拿出去访问

7.方法不能当做函数一样调用

8.OC方法只能声明在@interface和@end之间,只能实现在@implementation和@end之间。也就是说OC方法不能独立于类存在

9.C函数不属于类,跟类没有联系,C函数只归定义函数的文件所有

10.C函数不能访问OC对象的成员

11.低级错误:方法有声明,但是实现的时候写成了函数

12.OC可以没有@interface同样可以定义一个类

 

4.字符串基本使用

NSString使用

只需要在C语言字符串前面加上@符号, 系统就会自动将C语言字符串转换为OC字符串

C语言中的字符串不是对象;OC中的字符串是一个对象

 

注意: 输出C语言的字符串使用%s

          输出OC的字符串使用%@,  %@就专门用于输出对象类型的

方法不能使用函数来实现, 方法是方法, 函数是函数

方法属于一个类, 函数属于一个文件

 

5.结构体作为对象的属性

初始化结构体属性

方法一:强制转换

stu->_birthday = (Date){1986, 1, 15};

    

方法二:定义一个新的结构体,给d赋值,将d赋值给_birthday

    Date d = {1986, 1, 15};

    stu->_birthday = d;

 

方法三:分别赋值

stu->_birthday.year = 1986;

stu->_birthday.month = 1;

stu->_birthday.day = 15;

 

6.对象作为方法的参数传递

7.对象作为方法的参数连续传递

 

8.#pragma mark 基本使用

//#pragma mark  程序入口

 

9.对象作为返回值类型

注意:在企业级开发中千万不要随意修改一个方法

通过new创建出来的对象存储在堆中,堆中的数据不会自动释放

 

OC2

标签:

原文地址:http://www.cnblogs.com/micalafei/p/4774615.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!