学习一

来源:互联网 发布:西华师范大学知乎 编辑:程序博客网 时间:2024/05/29 10:58

cocoa touch 是百分百面向对象的,使用MVC设计模式。

预备知识:

面向对象编程,数据结构等;

面向对象术语(class,instance,message,methord,instance variable,superclass,subclass)

IOS分为四层:

cocoa touch

media

core services

core os 



平台组成:

工具:xcode 等

语言:oc

框架:map kit,ui kit ,core data 等

设计模式:MVC


MVC:组织程序中所有的类,当多个视图时候,可以通过多个MVC相结合来实现,M与M可相互交流,V与V独立,C与C下属关系,同一个M可以供多个C使用

三部分组成:view,model,controller;

C与V:  C可以向V发消息(因outlet的存在);

C可以给V指定动作,在UI中当v触发该动作时,c收到该消息并处理;

C设置自己作为V的代理(代理通过协议设置,did,will,should的代理),V需要做的由C实现;

C设置自己作为V的代理(数据源代理),V需要的数据由C提供(C从M获取数据传给V)

C与M:  C可以向M发消息

M与C:  当M数据改变可以把自己设为广播站,(C接收广播,M发送给对其感兴趣的事物)

 V与M:  相互独立

OC:

头文件.h,实现文件.m,C的超集;

OC中通常不访问变量,而是访问属性,一个属性是get和set方法的结合,get使用属性名字,set使用set加上开头大写的属性名;

公有声明:

#import <Foundation/foundation.h>@interface Card : NSObject@end
IOS7中可以使用@import Foundation; 来导入框架

nsobject是IOS中所有类的父类;

私有声明(扩展中)+实现:

#import "Card.h"@interface Card()@end@implementation Card@end

头文件加上:

@property (strong)NSString* contents
在OC中,所有的对象都在堆中,所以,将不会存在NSString contents;

strong 表示:只要指向该对象的指针不被设置为nil,将一直存在堆中。

weak表示:如果没有strong型指针指向它,它会被扔出内存,然后设置为nil(在任何时间都可能发生)
nonatomic表示;非线程安全的,如果不设置它,它会锁住代码,使代码复杂化

@property (nonatomic) BOOL matched

基本类型不会存放在堆中,所以不必指定strong 或 weak。

@property (nonatomic,getter = isMatched) BOOL matched

get方法名由 matched改为isMatched,

方法声明:

-(int)match:(Card*)card;
方法实现:



0 0
原创粉丝点击