iOS7 Development step by step – Objective-C & XCode 5

2 篇文章 0 订阅

iOS7 Development step by step – Objective-C & XCode 5

最近变懒了,刚好这个周末没事,恰巧又看到了Standford iOS7的公开课程,就换成iOS7来继续写这个系列吧。

Objective-C Foundation

1. Objective-C中的方法声明

下面的代码声明了一个带两个参数的方法:


- (void)addCard:(Card *)card atTop:(BOOL)atTop;

 
 

Objective-C中的方法声明与大多数语言都不相同,这种方式初看起来会比较不习惯(如果你是从其它语言转过来的)。但是细看后就会觉得这种方式可读性非常高。上面的方法全名其实可以叫做:
addCard XXX atTop XXX,读起来是不是很像自然语言?

当然我们也可以声明不带参数,或者有返回值的方法:



- (BOOL)match:(Card *)card;

- (Card *)drawRandomCard;


 
 

2. NSMutableArray

Objective-C 中的Array类型,NSArray和NSMutableArray,下面的代码声明了一个叫作cards的NSMutableArray.在Objective-C中Array声明时是不能指定Array中内容的类型的(因为Array中可以有不同类型的Object,给力哇)。NSArray和NSMutableArray的区别在于,NSArray在声明赋值以后就不能对其进行修改了,而NSMutableArray则可以对其进行修改如增加、删除其中的内容。


@property (strong,nonatomic) NSMutableArray *cards;// of Card

 
 

3. Objective-C中的消息

Objective-C中的消息分两种,一种是中括号括起来的,如下面代码中的第一行,就调用了Card的类方法alloc分配内存,然后再调用init方法实例化Card
另外一种是使用’.'来发送消息,其实是使用的Property,如下面代码中的第二行。card.rank就可以获取card的rank属性。而且,实际上这种使用’.'的方式其实只是一个语法糖,我们其实可以使用[card rank]来获取card的rank属性。(甚至,对于那些没有参数的方法,我们也可以使用XXX.methodwithnoarguemnt这样的方式来调用,当然我们并不推荐这样做,方法和属性必需要合理的使用)


Card *card = [[Card alloc]init];
card.rank;

 
 

老美的课程,讲得太详细的,好多没有记录,大家可以上网易公开课或者iTunes U看看视频:)

XCode 5 Usage

XCode 5的使用,这里也不细说(讲的太多太详细了~)

1. Action in XCode 5

前面一结的MVC介绍中有讲到过View与Controller之间的通信:

在程序运行的过程中,View层其实是需要与Controller通信的,比如用户点击了OK这个Button,View就需要告诉Controller“Hi,用户点击了OK这个Button,我该怎么办?” .当然View层不可能直接调用Controller的某个方法来处理用户点击这个事件,因为View不知道该使用Controller中的哪个方法。
因此我们使用到一种叫做Target的方式来解决这个问题,Controller会事先告诉View,“Hey,如果有人点击了OK,你就叫我运行okButtonClicked()这个方法吧。”。这下问题就解决了,有人点击了OK以后,View就会把这个动作转给Target(即Controller事先告诉View的那个方法)。然后Controller运行完该方法,处理好这个事件以后就会告诉View,好了,我知道了,你该这样,如此,这般的显示就好了。

Action 就是XCode中View与Controller之间通信的一种方式。创建一个Action十分简单,从StoryBoard中按住Ctrl键然后在View上拖动到Controller代码中就可以。

2. Outlet in XCode 5

还有一种情况就是Controller需要与View通信,或者修改View的属性的情况。
这时我们会需要创建一个outlet到Controller中。其实就是相当于在Controller中创建了一个到这个View的弱引用,当需要修改这个View的属性时,直接通过这个引用就可以对View进行操作。
至于为什么使用弱引用,课程中也有介绍:StoryBoard已经Hold住了这个View的Strong ref了,我们在Controller中只需要拿到弱引用。当StoryBoard不再有这个View时,我们也没有必要再对这个View进行操作了。

第二课内容并不太多,也不好描述,就写到这里吧,欢迎大家讨论


本人菜鸟,边听着没有字幕的Stanford公开课边写下这些东西。各位看官请轻拍,有任何建议欢迎评论。欢迎访问我的个人页面:http://1.pingoflove.sinaapp.com/?p=44 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值