课程学习笔记 - 1

第一讲:

一、obj-c中MVC的构成

MVC包括controller,model和view三部分。

model是存放具体数据定义和程序内容的地方,what the app is not how display

model和model之间不能互相直接通信。model不能直接向controller通信,可以通过radio station=notification方式来进行通信,由controller来获取其需要的信息。


view是UI部分,即显示model到屏幕上,view不储存其展示的信息,如果需要可以使用一定的protocol从controller来获取需要展示的信息。

view和model之间不能互相直接通信。view不能直接向controller通信,可以通过action-target方式和delegate方式向controller通信。


controller为总体控制部分。

controller可以直接向view和model通信(与view通信称为outlet)

controller会转换model中的信息,再发送给view。

关系图如下:




二、类的声明和使用

在obj-c中分公共类和私有类,.h文件公有,.m文件私有。

.h文件中声明类时,使用@interface 类名 : 父类/NSObject 以@end结尾

.m文件声明类时,使用@interface 类名 以@end结尾


声明.h文件类时要加入头文件,若此类即为superclass,头文件使用#import <Foundation/Foundation.h> (Foundation里包括基本的非UI对象,比如NSObject),可以简写为#import Foundation;

.m文件是为了implement.h文件,所以.m文件头文件需要#import ".h类名",并在后面接上@implementation 类名


三、property的概念

在obj-c中不能直接对实例变量处理,而是采用property。property会自动生成对应变量的setter/getter方法。property可为任意类型。

setter名为set+变量名(首字母大写),getter名为变量名


在.h文件中声明指针型property时,使用@property ( strong/weak, nonatomic/空) 该property指向对象的类型or类 *property名;


weak:意为当不存在强指针指向此弱指针指向的obj时,此obj从堆中丢弃并给此弱指针赋值nil  ← 若property为primitive类型,则不用判定强弱

strong:意为保证此强指针所指向的obj在强指针被赋值为nil之前都存在于堆中

nonatomic:means “access to this property is not thread-safe”.

We will always specify this for object pointers in this course. If you do not, then the compiler will generate locking code that will complicate your code elsewhere.




以下部分若非有特别要求,可不用写:

在.m文件创建property时,使用@synthesize property名 = _property名;

并重写getter/setter。


声明bool类型property时,若想要更改getter的方法名,可在"()"内输入 getter = 方法名 ← 只是为了方便代码阅读


私有property:

当需要私有property时,需要将property写在@implementation中


四、method

声明方法:(返回值类型)method名 : (参数类型) 参数名; ← 在header中声明即可保证method public

在.m文件中override即可


五、发送消息 - calling

用[]表示calling,

calling : “用于通知某个对象该做什么即通知对象去执行某动作"


四、Card Game Demo

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值