self.XX点语法/队列和栈的区别/堆区与栈区的区别

来源:互联网 发布:可可网络验证通杀 编辑:程序博客网 时间:2024/05/20 01:45

一 self.XX点语法

1.传统的setter,getter方法

 -(void)setAge:(int)age{    _age = age;}-(int)age{    return _age;}

2.点语法

点语法的本质是(set/get)方法的调用,而不是访问成员变量,当使用点语法时,编译器会自动展开成相应的方法。
切记点语法的本质是转换成相应的set和get方法,如果没有set和get方法,则不能使用点语法。

p.age = 10;  展开之后等价于   [p setAge:10];  // setter方法NSString *name = p.age; 等价于NSString *name = [p name]; // getter方法

3. 点语法陷阱 :

在点语法里用self,出现死循环。

在set方法使用self.- (void)setAge:(int)newAge {    self.age = newAge;}

二 队列和栈的区别

队列是先进先出,而栈则是先进后出。

三 堆区和栈区的区别

栈区: 存放局部变量临时变量;由编译器自动管理,不需要我们手动控制。
堆区: 程序运⾏行时动态分配的内存,对象 ;需要程序员手动管理内存。

0 0