(原)OC思考

为什么要有属性?是为了实例变量的安全性和可再分类性
1. 如果我们允许别人生成子类,他们想要清楚我们的实例变量,我们就会对其进行干涉,所以如果他们将实例变量设置成其他东西,我们可能会想要检查一下,确保我们不会造成干扰,保障了我们的安全
2.提供类似阀门的东西,通过它可以延迟实例化

 

我们通常不会直接访问实例变量

 

必须要有实例变量来支持属性吗?
不必要。
如何能有一个不带有实例变量的属性呢?
不用@synthesize
不含属性的实例变量吗?
可以,但是不要想这个问题。最好是一想到实例变量,就会想到使用属性

 

strong & weak
strong:将指针指的对象保留在堆中,而不将它的内存释放,我不再指向的方法就是将指针设为nil,或者我从堆中出来。
weak:至少一个人用强指针指向它,就将这个内存保存在堆内,如果没人指向它,就将它扔出堆外,将指向它的指针设为nil
weak 只在iOS5中应用程序运行时起作用

 

几乎没有C结构体在堆中,一般都放在栈上。所以CGPoint 不需要用指针指向

 

实例方法:发送给对象
类方法:发送给类
self跟super 实例方法跟类方法有所不同
1,实例方法里面的self,是对象的首地址。
2,类方法里面的self,是Class

 

1.你的量有多少(问对象)
2.如果我有你,那么它的量有多少。(问类)

 

 

 

posted @ 2013-11-01 20:44  不想当元帅的好兵。  阅读(152)  评论(0编辑  收藏  举报