《从零开始学iOS7开发系列3-我的地盘我做主-Cha12》.pdf
文本预览下载声明
从零开始学iOS7开发系列3-我的地盘我做主-Cha12
原⽂及⽰例代码来⾃raywenderlich store中的iOS Apprentice 系列3教程,经过翻译和改编。
版权归原作者所有,本系列教程仅供学习参考使⽤,感兴趣的朋友建议购买原英⽂教程教程(The
iOS Apprentice Second Edition: Learn iPhone and iPad Programming via Tutorials!)。
购买链接:
/store
这可是你⾃找的!
好了,在法师⼥神吉安娜的招呼声中,我们开启了新⼀轮的战⽃,哦不,新⼀课的学习。
在前⼀部分(1-11课)的内容中,我们学习了如何使⽤Core Location获取⽤户所在的地理位置信
息,并进⾏反向地理编码。同时,我们还了解了防御型编程的概念,也就是从⽤户体验和产品健壮
度出发,把各种意外的情况处理都考虑在内。
总的来说,再次强调⼀点,这个教程的主要⺫的不是教你学iOS开发,⽽是带你进⼊iOS的世界溜⼀
圈,教你如何学习编程,了解程序猿的思维和⼯作⽅式,学会如何学习新的知识。
如果你是为了找个好⼯作来看该系列教程,建议不如报个绿翔技校或者⻄⼤神⻦神⻢的来得快。
之所以有这些废话,是因为接下来——⼜是让你惨不忍睹不忍继续看下去的—-理论知识了!!!
不管你看不看,我就继续了。⾄于不看的后果吗,嘿嘿,有⼥神吉安娜镇楼,⼩⼼我的魔法会把你
撕成碎⽚哦~
到⺫前为⽌,我们的教程中把⼏乎所有的代码⽣物都叫做对象(object)。其实这样的叫法是不严谨
的。神⻢?为⽑到现在才告诉我?不知道我都跟⼩伙伴们炫耀好久了吗嗷嗷嗷!⼥神说了,这是你
⾃找的,装B遭雷劈哦,它才不管你是否能渡劫成功。其实,为了更精确的贯彻⾯向对象编程的理
念,我们要把对象(object)和它所属的类(class)区分开来。
当我们使⽤类似下⾯的代码时,
@interface ChecklistItem : NSObject
…
@end
实际上我们是在定义⼀个名为ChecklistItem的class (类),⽽不是⼀个object (对象)。
⽽当我们使⽤类似如下的代码时才是创建⼀个对象。
ChecklistItem *item = [[ChecklistItem alloc] init];
现在item这个变量包含了ChecklistItem类的⼀个对象。只要你看到该死的*星号,就知道它是⼀个对
象了。你可以这样理解:item这个变量包含了ChecklistItem类的⼀个实例。在这⾥,对象和实例是
⼀回事。不过对象和实例变量可不是⼀回事哦。
换句话说,ChecklistItem类的对象其实是item这个变量的datatype (数据类型)。
Objective-C语⾔中提供了⼀⼤堆内置的数据类型,当然我们也可以通过创建⾃定义类的⽅式来添加
属于⾃⼰的数据类型。
为了更好说明类和实例/对象的区别,还是⽤个例⼦来说明吧。
咱两都是标准的吃货,还都是哈根达斯的爱好者(会不会有点伪娘的感觉啊?)。最近⼟豪⼤哥给
发了5元钱的微信红包,于是哥两商量好干脆去⼤吃⼀顿哈根达斯。哈根达斯(Haeagen-Dasz)就是我
们要吃的事物的类,为了简单起⻅,就⽤Dazs这个单词吧。
让我们创建⼀个哈根达斯类如下:
@interface Dazs : NSObject
@property (nonatomic, strong) NSString *flavor;
@property (nonatomic, assign) int scoops;
- (void)eatIt;
@end
咱两⼀起去了哈根达斯店,向⼩妹要了两个。
买完后,漂亮⼩妹递过来⼀个对你说,这是你的哈根达斯。你害羞的笑笑,指着旁边的我,不,弄
错了,这是他的哈根达斯。
//你的那个
Dazs *iceCreamForYou = [[Dazs alloc] init];
dazsForYou.flavor = @Strawberry;
dazsForYou.scoops = 2;
//我的那个
Dazs *iceCreamForMe
显示全部