iOS Object基本语法扫盲

Posted by Guofeng Blog on September 23, 2024

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