转载请注明出处
作者:小马
这一节课有很大一部分是讲xcode基本操作, 这一部分就不记录了。
一 关于weak和strong
比如给一个label建立一个connectionto view controller,弹出框里的storage默认是选weak,因为它已经有一个strong的指针指向它了,就是它的父类视图,我们这里用weak表示只有这个label在这个视图里时,指针才存在,否则我们就不关心它的存在。
另外,中间添加了一个内部的变量,声明为strong,
因为这个是我们内部自己用的,只有我们关心它的存在,其它地方不会指向它,我们自己可以管理得很好.所以指定为strong型的。
UIViewController的view属性是strong,因为controller要直接拥有view。而添加到view上的subviews,作为IBOutlet只需要设置为weak就可以了,因为他们不是controller直接拥有的。直接拥有subviews的是controller的view,ARC会帮助管理内存。
二 复制按钮时,同样也会复制它的target action。
也就是说,按下上面任何一个按钮都会触发digitPressed。
三 关于按钮事件
这里我们想获取按键上的
可以改sender的参数类型,来缩小发送的消息的范围,更精确,如下图所示:
CalculatorBrain类中,对operandStack初始化的位置需要引起我们的注意,它在getter里做了这个事情,如下:
首先因为CalculatorBrain类并不像viewController那样有个像viewDidLoad启动只调用一次的函数,也没有所谓的”构造函数”,那初始化内部变量的最好的地方就是getter了.这里我们实现了自己的getter,synthesize就不会为我们实现这个方法了。
源码下载地址(注意不是斯坦福的源码,是我自己根据课程做的同样功能的工程源码)
http://download.csdn.net/detail/pony_maggie/7242661