当前位置: 首页 > news >正文

网站改版专题页tvc广告片制作公司

网站改版专题页,tvc广告片制作公司,营子区住房和城乡建设局网站,广告推广赚钱这课主要是以一个计算器一个用为例子#xff0c;教你怎么使用XCode#xff0c;如何使用MVC设计模式创建应用。 (1)新建一个single view application模版的应用 打开xcode并点击“创建一个新xcode项目”#xff0c;进入项目创建界面#xff0c;这个界面让我们为应用选择一个…这课主要是以一个计算器一个用为例子教你怎么使用XCode如何使用MVC设计模式创建应用。 (1)新建一个single view application模版的应用 打开xcode并点击“创建一个新xcode项目”进入项目创建界面这个界面让我们为应用选择一个模板。接着选择“single view application”模板单击next按钮进入项目详细信息界面。 其中Company Identifier用来标志你的应用要是唯一的不要有冲突。class prefix通常与应用的名字一样。这个use storyboard是ios5新特性它允许把所有的view同时放到屏幕上所以能看到它们之间的互动。storyboard能让你在屏幕上看到MVC群的结构图看到MVC之间的关系。 接着单击next按钮进入选择保存项目目录界面选择好后单击create按钮就创建好了项目。 MainStoryboard.storyboard是我们MVC的view所有MVC的所有view都在这里。在我们的例子里storyboard会包含所有controller的view。系统不会自动创建model因为系统不知道它是什么。 接下来构建计算器需要一些控件如按钮、文本框、显示区域。这可以通过单击右上角utilities按钮实现它会弹出一个区域上部分叫inspector用来显示所选内容的更多信息下半部分可以认为是一个向导绘制view的向导我们需要这个向导因为我们需要对象库。 还记得之前的那个MVC图吗controller有个绿色箭头能够向view发话。 controller肯定需要和view对话告诉它显示内容、计算结果、输入内容所以要在controller中创建一个outlet到veiw里。实现这点不用打代码只需按住键盘control键从显示上拖出一条线到代码上即可。label已经有个strong指针了因为父窗口view已经有了strong指针指向它所以label只需weak指针。IBOutlet这个类型没有具体内容只是xcode用来跟踪哪个property是outlet的。controller已经准备好向label发话了synthesize已经生成setter和getter那什么时候调用呢setter用来设置指针当storyboard被读取画面出现在屏幕上时ios就会调用setter去创建连接到outlet当想要和label对话时就去调用getter。回到对象库拖出round rect button到显示界面上现在要考虑controller和veiw的另一个连接target action。所以controller要有一个target来接收键盘按钮发送的action(用户按下按钮)操作只需按住control将按钮拖出到h文件IBAction实际上就是void用ibaction是要让xcode知道这是个action。这个target action就是当按钮被按它就发消息给controller消息附带参数这个参数就是发送者自己这里就是按钮。复制粘贴按钮也会复制它的target actin所以按钮都会发送一样的target action。 以下是CalculatorViewController.h文件的代码 #import UIKit/UIKit.hinterface CalculatorViewController : UIViewController {UILabel *display; }property (strong, nonatomic) IBOutlet UILabel *display; - (IBAction)digitPressed:(id)sender; - (IBAction)operationPressed:(id)sender; - (IBAction)enterPressed;end CalculatorViewController.m文件的代码 #import CalculatorViewController.h#import CalculatorBrain.hinterface CalculatorViewController ()property (nonatomic) BOOL userIsIntheMiddleOfEnterNumber; property (nonatomic, strong) CalculatorBrain *brain;endimplementation CalculatorViewControllersynthesize display _display; synthesize userIsIntheMiddleOfEnterNumber _userIsIntheMiddleOfEnterNumber; synthesize brain _brain;-(CalculatorBrain *)brain{if (!_brain) {_brain [[CalculatorBrain alloc] init];}return _brain; }- (IBAction)digitPressed:(UIButton *)sender {NSString *digit [sender currentTitle];if (self.userIsIntheMiddleOfEnterNumber) {self.display.text [self.display.text stringByAppendingString:digit];} else {self.display.text digit;self.userIsIntheMiddleOfEnterNumber YES;} }- (IBAction)operationPressed:(UIButton *)sender {if (self.userIsIntheMiddleOfEnterNumber) {[self enterPressed];}double result [self.brain performOperation:[sender currentTitle]];NSString *resultString [NSString stringWithFormat:%g,result];self.display.text resultString; }- (IBAction)enterPressed {[self.brain pushOperand:[self.display.text doubleValue]];self.userIsIntheMiddleOfEnterNumber NO; } end 现在需要建个model我们已经有了controller和view还要有model。单击菜单里File—NEW—NEW File创建文件选择objective-c class单击next取名为CalculatorBrain保存位置与其它文件一样。 需要一个栈来保持操作数、入栈运算、出栈运算等。怎么去实现一个栈一个很简单的办法是使用数组。我们需要private接口因为这个栈不是公共的入栈出栈操作全在model里进行。当property创建的时候值是0或nil那么向nil发送消息就什么也不会发生因此需要一个构造函数来设置它只需要在getter方法里判断实体变量是否为空如果为空就为它分配一个数组同时也只分配一次这叫延迟实例化。synthesize不会自动分配内存空间synthesize只有一个变量指针需要自己来分配空间。 以下是CalculatorBrain.h文件的代码 #import Foundation/Foundation.hinterface CalculatorBrain : NSObject-(void)pushOperand:(double)operand; -(double)performOperation:(NSString *)operation;end CalculatorBrain.m文件的代码如下 #import CalculatorBrain.hinterface CalculatorBrain()property (nonatomic, strong) NSMutableArray *operandStack;endimplementation CalculatorBrainsynthesize operandStack _operandStack;-(NSMutableArray *)operandStack{if (_operandStack nil) {_operandStack [[NSMutableArray alloc] init];}return _operandStack; }-(void)pushOperand:(double)operand{NSNumber *operandObject [NSNumber numberWithDouble:operand];[self.operandStack addObject:operandObject]; }-(double)popOperand{NSNumber *operandObject [self.operandStack lastObject];if (operandObject ! nil) {[self.operandStack removeLastObject];}return [operandObject doubleValue]; }-(double)performOperation:(NSString *)operation{double result 0;if ([operation isEqualToString:]) {result [self popOperand] [self popOperand];}else if([operation isEqualToString:*]){result [self popOperand] * [self popOperand];}return result; }end  转载于:https://www.cnblogs.com/geory/archive/2012/12/11/2810869.html
http://www.yutouwan.com/news/318481/

相关文章:

  • 关于政务网站建设工作情况的总结wordpress上传图片时发生了错误
  • 如何做电子书网站开源镜像网站开发
  • 用asp.net做的网站框架泰安网站制作公司电话
  • 网站公司动态做不了怎么办衡阳县建设局网站
  • 做演讲和做演讲视频网站阿里邮箱注册
  • 如皋网站开发公司建造师人才网交流平台
  • 微信做购物网站怎么抽佣做网站学哪个语言最好
  • 网站源码网站电商培训机构排名
  • 浏览器打开网站404网站优化推广 site
  • 网站手机端制作软件个人怎么做微信公众号和微网站吗
  • oecms(php企业网站管理系统)姜堰住房和城乡建设厅网站首页
  • 动漫网站开发设计思想手机有些网站打不开怎么解决
  • 公司网站简介怎么做wordpress汉化插件软件
  • 免费合同模板网站中国招标网官网首页
  • 襄樊seo快速排名seo引擎优化工具
  • 一个网站备案号是冒用其它公司的企业文化培训心得体会
  • 天津营销网站建设联系方式成都网站建设 平易云
  • 网站帮助中心设计邯郸招工信息网
  • 怎样在手机上制作网站visual studio
  • 网站双机热备怎么做西安市做网站公司有哪些
  • 网站没有icp备案怎么访问南昌装修公司
  • 网站建设 案例互联网装饰网站
  • 销售网站模板搭建视频服务器
  • 网站开发流程pptwordpress指定关键词自动内链
  • 珠宝企业的门户网站开发知乎自媒体平台注册
  • wamp在网站建设中的功能及协作关系深圳网站seo优化公司
  • 阿里云备案 网站备案域名购买什么网站从做系统
  • 营销型网站建设调查表如何做公司介绍视频网站
  • 如何备份网站网站做营销推广的公司
  • 商丘网站建设推广渠道企业网站建设的意义