回顾
上一篇我们说到Obj-C的一些特性,在公开课的第二集教授开始用deck.m和deck.h作为实例进行讲解。
Tips
- 之前我知道了在OC中函数的调用是通过
message这种富有特色的形式,这一集我还知道了message可以嵌套,像这样[[NSMutableArray alloc] init],这就好像函数的链式调用一样 - deck.m中随机取出card的代码中有这么一句
self.card[index],其实这也是一个消息调用,其实用的是self.cards objectAtIndex: index - Important
+修饰一个method的时候,意味着这是个class method而不是instance method,它收到的信息将发送给类,嗯,这就像Java的静态方法。一般用于返回常数,或者作为工具方法。 [xxx alloc] init是objc创建实例最常见的形式,千万记得先alloc再init- 每次重写init都需要返回实例,而不是最原先的NSObject
View
终于到View层啦,教授再次向我们展现了Xcode强大的按住ctrl连接界面和代码的强大功能,另外介绍了sender这个概念,其实有点像js里的event.target不过oc里都封装好啦。
这里有个小窍门,通过设置一个@property,然后通过重写它的setter来使得UI和数据能够保持同步。
@在oc中的作用
@是为了让一个普通的字符串变成一个字符串对象,在oc中没有char*这种说法,必须都转化成字符串对象
synthesis在oc中的作用
其实这是为了返回一个声明类型的一个实例,也就是_object,这本来是在幕后完成的,如果需要在init中做一些初始化工作,就要小心地处理这个带_的变量