Objective-C 部分
1. 你如何理解OC 的内存管理
OC 内存管理是基于引用计数。谁想使用某个对象B,就要把对象B 的计数器+1,如果不
使用这个对象了,那么就把对象B 计数器-1,如果B 对象计数器减到0,那么B 对象自动会调用自己的 dealloc函数,也就是这个对象被销毁。
一句话就是谁拥有对象,谁负责释放该对象,谁alloc 谁应该release 或者autorelease
系统有一个自动释放池,对于一些对象我们可以放在自动释放池中。如果自动释放池本身销毁,那么里面的内容会被全部调用release.
- assign, retain, copy, autorelease, release, dealloc 的不同 assign 就是基本的赋值,就是C 的基本的赋值retain 就是让对象引用计数+1,表示拥有了这个对象copy 把对象复制一份。copy 是深拷贝,浅拷贝auorelease 把对象放在自动释放池里面
release 表示对象计数器-1 如果减到 0 那么对象自动 dealloc
- self.name= “yang”和name= “yang”的关系
self.name 表示调用setter 调用一个函数
name=”year”表示给字段field 赋值
- 什么是深拷贝和浅拷贝copy
浅拷贝只是拷贝对象本身,不递归的拷贝里面的子对象深拷贝是把对象以及对象的对象递归拷贝。注意强调 mutableCopy不是深拷贝 如果要对自己对象BookModel 实现拷贝那么必须实现 NSCopying协议 实现里面的- (id) copyWithZone:(NSZone *)zone;
- copy 和mutableCopy 是什么
mutableCopy 可变拷贝NSString --àmutableCopy-àNSMutableString NSArray --àmutableCopy-àNSMutableArray;
NSMutableString -àcopy---NSString
- #import 和#include 区别
#import 对于包