将来跳槽用selector

iOS面试题:简述内存管理基本原则

2019-05-25  本文已影响183人  iOS猿_员

其他注意事项

  1. 如果一个对象有一个_strong类型的指针指向着,找个对象就不会被释放。如果一个指针指向超出了它的作用域,就会被指向nil。如果一个指针被指向nil,那么它原来指向的对象就被释放了。当一个视图控制器被释放时,它内部的全局指针会被指向nil。用法“:不管全局变量还是局部变量用_strong描述就行。

  2. 局部变量:出了作用域,指针会被置为nil。

  3. 方法内部创建对象,外部使用需要添加_autorelease;

  4. 连线的时候,用_weak描述。

  5. 代理使用unsafe_unretained就相当于assign

  6. block中为了避免循环引用问题,使用_weak描述;

  7. 声明属性时,不要以new开头。如果非要以new开头命名属性的名字,需要自己定制get方法名,如:

@property(getter=theString) NSString * newString;
  1. 如果要使用自动释放池,用@autoreleasepool{}

  2. ARC只能管理Foundation框架的变量,如果程序中把Foundation中的变量强制换成COreFoundation中的变量需要交换管理权;

  3. 在非ARC工程中采用ARC去编译某些类:-fobjc-arc

  4. 在ARC下的工程采用非ARC去编译某些类:-fno-fobjc-arc

更多:iOS面试题大全

上一篇 下一篇

猜你喜欢

热点阅读