斯坦福大学iOS7应用开发笔记一(未完)

来源:互联网 发布:男士乳液推荐知乎 编辑:程序博客网 时间:2024/06/06 10:59

lesson1:

.h 文件是公共API

.m 文件是私有实现


属性@property要么是强要么是弱。

strong表示保持对这个对象的存储在堆中保持这个所指的东西。OC会追踪每一个指向堆中对象的强指针,只要有一个强指针存在,它就会把其留在堆中。只有不再存在任何强指针时,它才会从堆中释放内存,是立刻释放,而不是之后的垃圾收集。

堆,就是系统中的空余内存。

weak弱指针会告诉OC,我有一个指针指向堆中的这个对象,只要还有强指针指向他,就将他留在内存中,只要不再有强指针指向他,内存就会释放,此时这个弱指针会被设置为nil,nil表示这个指针不指向任何东西,nil也就是0.

注意;在OC中可以向nil发送消息,而不会crash,因为nil没有实例不会执行任何代码,而且如果那个消息有返回值,会返回0(当返回的是struct类型时,除外)。


当内存中的东西没有指针指向它时,会被自动释放。弱的情况,OC不仅会释放内存,还会为其设置为nil。

nonatomic:非原子是说同该属性一同的setter和getter不是线程安全的,你不能有两个想成同时尝试设置该属性。

0 0