在xcode中用oc实现计算器

在建立工程后建立关于计算器的类。

在类的.h 中进行类的方法和成员的声明,在.m是实现:

值得注意的是,在其他文件中用到这个类需要 加上这个类的头文件。

然后在main.storybroad中添加你所需要的控件,并加上函数:

我做的是将数字按钮拖入到一个函数中,将所有运算符拖入到到另一个函数中,其他的按钮都有独立的函数。

然后在viewcontroll.h中申明一个全局的类的对象

在viewcontroll.m中的代码为:

//

//  ViewController.m

//  jisuanqi

//

//  Created by apple on 14-7-10.

//  Copyright (c) 2014年 无名. All rights reserved.

//

#import "ViewController.h"

#import "jisuanqi.h"

@interface ViewController ()

@property (weak, nonatomic) IBOutlet UILabel *xianshi;

@end

int i=10;

@implementation ViewController

- (IBAction)dianji:(UIButton *)sender {

float value=[sender.currentTitle floatValue];

if(jsq.j==‘+‘|| jsq.j==‘-‘|| jsq.j==‘/‘ || jsq.j==‘*‘)

{

if(jsq.dian==‘.‘)

{

jsq.b=jsq.b+value/i;

i=i*10;

}

else

jsq.b=jsq.b*10+value;

self.xianshi.text=[NSString stringWithFormat:@"%f",jsq.b];

}

else

{

if(jsq.dian==‘.‘)

{

jsq.a=jsq.a+value/i;

i=i*10;

}

else

jsq.a=jsq.a*10+value;

self.xianshi.text=[NSString stringWithFormat:@"%f",jsq.a];

}

}

- (IBAction)diandian:(id)sender {

jsq.dian=‘.‘;

}

- (IBAction)yunsuan:(UIButton *)sender {

jsq.dian=‘0‘;

i=10;

if( sender.tag==1)

{

jsq.j=‘+‘;

}

else if(sender.tag==2)

{

jsq.j=‘-‘;

}

else if(sender.tag==3)

{

jsq.j=‘*‘;

}

else if (sender.tag==4)

{

jsq.j=‘/‘;

}

}

- (IBAction)work:(id)sender {

float gg=[jsq work];

self.xianshi.text=[NSString stringWithFormat:@"%f",gg];

jsq.b=0;

jsq.a=0;

jsq.j=0;

jsq.dian=0;

i=10;

}

- (void)viewDidLoad {

[super viewDidLoad];

jsq=[[jisuanqi alloc] init];

// Do any additional setup after loading the view, typically from a nib.

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

@end

运行编译后的结果为:

在xcode中用oc实现计算器

时间: 2024-10-23 08:01:02

在xcode中用oc实现计算器的相关文章

xcode中用oc代码基本控制view控件

控件代码部分: 编译运行后的结果为: 复杂一点的: 结果为: xcode中用oc代码基本控制view控件,布布扣,bubuko.com

xcode 中用AvAudioPlayer播放mp3文件

[playButton setEnabled:YES]; NSError *playerError; AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[[[NSURL alloc] initFileURLWithPath:mp3FilePath] autorelease] error:&playerError]; self.player = audioPlayer; player.volume =

xcode中用AVAudioRecorder录音到指定的caf文件

-(void) StartRecord:(NSURL *) recordedFile { session = [AVAudioSession sharedInstance]; session.delegate = self; NSError *sessionError; [session setCategory:AVAudioSessionCategoryPlayAndRecord error:&sessionError]; if(session == nil) NSLog(@"Erro

Xcode新建OC的空工程

有时候要写一些OC的测试代码,只关系OC的语法功能等,不需要建立app工程的,如objective-c程序设计中的例子,不需要appdelegate,则可以建立一个空的工程 1. 在xcode中选file -> new ->project 2. next 3. 输入product name之后 next 就能够建立一个空工程了

关于在Xcode的OC工程中相对路径失败的原因

Xcode的工程生成的可执行文件不是默认在源文件同一个目录下面的,所以当可执行文件执行的时候,相对路径就不对了. 这一点用终端直接编译执行文件证明了这一点: clang -fobjc-arc -framework Foundation main.m -o main

在Xcode下OC和C++混合编译出现的问题总结

简单的说下最近一次遇到了混编中的问题,算是自己的总结吧,还望能够帮助到打家. 当项目中OC和C++要混合编译的时候,特别是在两种语言字一个文件中相互调用的时候,千万一定不要忘记把编译器的Compile Sources As选项改为Objective C++,因为默认的选择项是According to file type.不然就会报错,而且报的错怪的很,当时搞的头都大了.

X-Code中用sqlite存储数据

开发中会经常遇到一些数据需要存储,如果仅仅存储用户名或者简单的用户信息,那存储的方式有多种,简单的归档解档即可解决.但遇到大量数据需要存储时,比如用户浏览过的新闻或者微博信息,在下次用户打开app时,希望在未联网的状态下,也能看见上次浏览过的内容,这时候用归档显然就不合适了.做过PC端开发的朋友都知道,数据存储有对应的数据库,那iOS开发中是否也有"数据库"呢? 我们知道,移动端的开发非常注重性能,不可能使用MySql,SqlServer,DB2等大型数据库存储数据,而sqlite是一

Xcode -(OC版)Storyboard教程 1.5:Segues的介绍

1 - 现在,让我们创建一个场景使用户可以自己增加新的选手进入列表,在 Player 界面中拖入一个 Bar Button,放置在导航栏的右侧,在属性监视器中将它的 System Item 改为『add』,这样它就会显示一个加号的按钮:当用户点击这个按钮时,它就会弹出一个新的场景让用户对新的内容进行编辑或添加 2 - 在编辑器中拖入一个新的 Table View Controller,放置在 Players 场景的右边,然后按住 ctrl,拉动加号键到新的场景中,放开鼠标之后,会出现如下选项 3

详解 swift3.0 和 OC 的混编

前言: 我们在一些情况下,仅仅使用swift 是无法完成一个项目的,在swift项目中必要用到 OC 实现一些功能,比如,项目要使用一些第三方的框架,但这个第三方的框架却是用 OC 实现的,或者你的项目必须调用原有项目的部分功能,而原来的项目也是用 OC 实现的.在这样的一些背景下,你就必须要实现这两种语言的混编.反过来也一样,比如开发者打算用swift实现一些新的功能要用到三方框架,而人家是使用swift写的,而你的项目确实OC的,这时候你也得实现一个混编.下面我们分两种情况分别说明一些. 一