1.OC内存管理机制
1).当你使用new,alloc和copy方法创建一个对象时,该对象的保留计数器值为 1.当你不再使用该对象时,你要负责向该对象发送一条release或autorelease消息.这样,该对象将在使用寿命结束时被销毁.
2).当你通过任何其他方法获得一个对象时,则假设该对象的保留计数器值为1,而且已经被设置为自动释放,你不需要执行任何操作来确保该对象被清理.如果你打算在一段时间内拥有该对象,则需要保留它并确保在操作完成时释放它.
3).如果你保留了某个对象,你需要(最终)释放或自动释放该对象.必须保持retain方法和release方法的使用次数相等.
2.代理的作用,优点是啥?
代理的目的是改变或传递控制链。允许一个类在某些特定时刻通知到其他类,而不需要获取到那些类的指针。可以减少框架复杂度。 另外一点,代理可以理解为java中的回调监听机制的一种类似
优点:1、避免子类化带来的过多的子类以及子类与父类的耦合
2、通过委托传递消息机制实现分层解耦
3.界面ID
界面传 ID 有两个方向:a,上级界面(当前界面)传给下级界面(待打开界面),这时直接在下级界面设置 ID 对应的属性即可,上级界面在打开下级界面之前,给下级界面 ID 属性赋值;b,下级界面传值给上级界面,这时用代理(这个就不说了),或者 block (带 ID 参数的 block)。方法是:下级界面定义一个 block,带 ID参数,上级界面打开下级界面之前,实现该 block;下级界面在触发了相应的事件后,调用该 block
4.记住上次浏览记录
进入应用后,停留在上次界面。这个相对简单,有几步:a,打开某个界面后,记录当前的界面(可以在 viewDidLoad 中记录);b, 在 AppDelegate 里面 (didFinishLoading。。 那个),查找 a 中的记录,如有,则把相应的 controller 赋值给 window 的 rootViewController (如果有 push,则要逐层建立 controller,然后逐个push 直至相应界面)
5.Json的格式
假定人名的key 为 name,年龄的 key 为 age:{"name":"张三”, "age":"20"}
JSON 是一个规范,有点像 NSDictionary,基于 key-value 的结构
6.readwrite,readonly,assign,retain,copy,nonatomic属性的作用