iOS Object基本语法扫盲
一、Class的属性
synthenize
@synthenize 用来说明get set访问的内部成员变量,
Class
@Class 关键字用在头文件.h中,标识这只是一个类型,而且不需要知道类有哪些方法 到了.m还需需要import 对应的.h头文件
property
@Property ,IDE编译器默认生成get set方法,进而可以用.语法直接访问 引用计数相关,重点是处理NSObject子类
- assign(默认) 直接赋值,int等基本类型
- retain release旧值 retain新值
- copy release旧值 copy新值,不是同一份内存
- strong/weak 替代retain和nil安全
注意BOOL YES/NO默认get方法会加上isXXX,增加可读性,getter=xx,,setter=yy,
- get set方法生成 - readwrite(默认) 读写 - readonly 只读写
二、多线程访问
atomic(默认) 类似java synchronize加锁 nonatomic 不加锁,性能更好,如果确认不会有多线程访问,建议用这个
三、内存自动管理AutoRelease
autorelease会自动放在栈顶最近的pool,然后栈在函数结束的时候,出栈的Pool里面所有对象都会发送release消息。
一般类的静态方法创建的对象,已经在静态方法alloc init autorelease,外部使用不需要关乎,自动释放了
四、iOS APP启动流程
1
2
3
4
5
6
7
8
9
10
11
12
UIMainAppliation
Delegate
didlaunch
window.rootview
window.makekeyvisible
view endedit/resignFirstResponder
addview/push/present