以CalculationBrain为例的MVC机制,.h/.m文件解析
来源:互联网 发布:unity3d插件map lab 编辑:程序博客网 时间:2024/05/28 16:11
model里面的文件
.h文件: head. file,公共API
在公共API中,你必须说明父类是谁,父类是公共的,需要放到头文件里面,语法是
@interface 类名 :父类
其中,类名必须与文件名称相同
CalculationBrain类的父类是 NSObject
要指定父类,需要导入#import,否则Objective-C编译器不知道你的父类是什么,通常对于iOS的父类,我们不止导入类的头文件,而是导入整个框架。
所有的实例变量都在这里(无论是私有还公有)。这里的实例变量是受保护的,基本上是私有的。当别人使用这个类的时候,别人可以使用公用的方法,但他们不能使用你的实例变量。
方法声明(这里举几个例子)
规定void作为返回类型:该方法不返回值
方法的名字是setOperand
参数类型是double,参数名称是anOperand
方法后面有逗号
这里声明了一个返回双精度值的方法
这个方法带有两个参数,分别是foo和bar,参数名称最好容易理解,像读英文一样
返回一个指向数组的指针
第二个参数的类型是id,说明这个指针可以指向任何类型
.h文件以@end结尾,表示接口的结束。所有公共API都在@interface和@end之间
.m文件:私有API以及所有的实现
需要导入头文件,因为实现文件需要知道就API而言,我们用的是什么公共API,知道我们的实例变量在哪里,等等。
注意:这里导入的文件要用一对双引号引起来,而不是“<”和”>“这样的字符。双括号适用于本地文件(你自己创建的文件),而不是系统文件。使用双括号时,编译器一般会首先在项目目录寻找指定文件,然后转到其他位置查找。如果有必要,可以指定编译器要查找的不同位置。
在实现文件中不需要声明父类
方法的末尾没有逗号,编写该方法的代码
方括号表示发送信息,向operation发送sendMessage消息,并提供参数argument
.m文件以@end结尾,表示实现的结束。所有私有实现都在@implementation和@end之间
controller里面的文件
.h文件
MVC视图
还要注意,测试程序main.m包括接口文件,而不包括实现文件。当在其他文件中需要使用一个类时,编译器通过类的接口部分获取所需要的全部信息。类的实现部分包括方法的实际代码,当你编译你的程序时,Xcode会处理引入了其他代码的情况。接口文件包含类的公开信息,即能够与这个类的使用者共享一些信息。另一方面,实现部分包含的是私有信息,即实例变量和代码。
- 以CalculationBrain为例的MVC机制,.h/.m文件解析
- 以do为扩展名的网页文件解析
- AppDelegate.h/.m文件的作用
- dom4j解析properties文件 以解析oracle连接信息文件为例
- MVC模式(以angularjs为例)
- Spring MVC中加载配置properties文件(以配置Redis为例)
- C++中.h文件和.m文件的区别
- 字符串M化成以N为单位的段
- VS2010 添加静态链接库(包括.h文件和.lib文件)以添加jsoncpp为例
- VS2010 添加静态链接库(包括.h文件和.lib文件)以添加jsoncpp为例
- VS2010 添加静态链接库(包括.h文件和.lib文件)以添加jsoncpp为例
- VS2010 添加静态链接库(包括.h文件和.lib文件)以添加jsoncpp为例
- ThinkPHP的MVC开发机制实例解析
- 以行为记录项,空格为分隔符的日志文件解析
- 简单通讯录的实现 main..h .m文件全部
- 以Sequence方式处理上传的文件(此处文件以图片为例)
- 训练参数解析-以caffe为例
- Servlet的相关知识(以文件上传为例)
- Cocos2d播放Cocostudio编辑动画
- ZCMU—1948
- iOS如何完美简单实现UITableView索引的放大悬浮提示View显示
- 学习笔记-Coondinatorlayout.Behavior<View>
- 动态规划:HDU3496-Watch The Movie(二维费用的背包问题)
- 以CalculationBrain为例的MVC机制,.h/.m文件解析
- NOIP 2015 Senior 3
- JVM性能调优之生成堆的dump文件
- 启动报错(持续更新)
- 具体截图
- get和post的区别
- Mina2.0学习笔记
- c++,二维数组中的数值代表金币数,从左上角出发,只能向下或者向右移动,判断是否存在获取指定金币数值N的路径
- webpack-dev-server不能自动刷新问题