ios 学习之 Simple Calculator Application

//
//  ViewController.h
//  ocTest
//
//  Created by Hu Li on 2018/12/30.
//  Copyright ? 2018 Hu Li. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController{

    bool operatorPressed;
    bool add;
    NSString *firstEntry;
    NSString *secondEntry;

}

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

- (IBAction)clearPressed:(id)sender;
- (IBAction)addPressed:(id)sender;
- (IBAction)minusPressed:(id)sender;
- (IBAction)equalsPressed:(id)sender;

- (IBAction)numberPressed:(UIButton*)sender;

@end

  

//
//  ViewController.m
//  ocTest
//
//  Created by Hu Li on 2018/12/30.
//  Copyright ? 2018 Hu Li. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    operatorPressed = FALSE;
    firstEntry = NULL;
    secondEntry = NULL;
}

- (IBAction)clearPressed:(id)sender {
    operatorPressed = FALSE;
     _labelOutput.text = nil;
    firstEntry = nil;
    secondEntry = nil;

}

- (IBAction)addPressed:(id)sender {
    add=TRUE;
    operatorPressed =TRUE;
}

- (IBAction)minusPressed:(id)sender {
    add=FALSE;
    operatorPressed =TRUE;
}

- (IBAction)equalsPressed:(id)sender {
    if(add == FALSE){
        int outPut = [firstEntry intValue] - [secondEntry intValue];
        _labelOutput.text = [NSString stringWithFormat: @"%i", outPut];
    }else{
        int outPut = [firstEntry intValue] + [secondEntry intValue];
        _labelOutput.text = [NSString stringWithFormat: @"%i", outPut];

    }
    operatorPressed = FALSE;
    firstEntry = nil;
    secondEntry = nil;
}
- (IBAction)numberPressed:(UIButton*)sender{
    NSInteger tag = sender.tag;
    if(operatorPressed ==FALSE){
        if(firstEntry == NULL){
            firstEntry = [NSString stringWithFormat:@"%i",(long)tag];
            _labelOutput.text = firstEntry;
        }else{
            firstEntry = [NSString stringWithFormat:@"%@%i",firstEntry,tag];
            _labelOutput.text = firstEntry;
        }
    }else{
        if(secondEntry == NULL){
            secondEntry = [NSString stringWithFormat:@"%i",tag];
            _labelOutput.text = secondEntry;
        }else{
            secondEntry = [NSString stringWithFormat:@"%@%i",secondEntry,tag];
            _labelOutput.text = secondEntry;
        }
    }
}
@end  

学习总结:

1. nil 和null?

2.Values of type ‘NSInteger‘ should not be used as format arguments; add an explicit cast to ‘long‘ instead。

原文地址:https://www.cnblogs.com/ybleeho/p/10201977.html

时间: 12-31

ios 学习之 Simple Calculator Application的相关文章

iOS 学习资料

(适合初学者) 本文资料来源于GitHub 一.视频教程(英文) Developing iOS 7 Apps for iPhone and iPad斯坦福开放教程之一, 课程主要讲解了一些 iOS 开发工具和 API 以及 iOS SDK 的使用, 属于 iOS 基础视频 iPad and iPhone Application Development该课程的讲师 Paul Hegarty 是斯坦福大学软件工程学教授, 视频内容讲解得深入, 权威, 深受好评 Advanced iPhone Dev

iOS学习资源收集

https://github.com/Tim9Liu9/TimLiu-iOS 自己总结的iOS.mac开源项目及库,持续更新.... github排名 https://github.com/trending,github搜索:https://github.com/search 目录 UI 下拉刷新 模糊效果 AutoLayout 富文本 图表 表相关与Tabbar 隐藏与显示 HUD与Toast 对话框 其他UI 动画 侧滑与右滑返回手势 gif动画 其他动画 网络相关 网络连接 图像获取 网络

iOS 学习资料整理

视频教程(英文) 视频 简介 Developing iOS 7 Apps for iPhone and iPad 斯坦福开放教程之一, 课程主要讲解了一些 iOS 开发工具和 API 以及 iOS SDK 的使用, 属于 iOS 基础视频 iPad and iPhone Application Development 该课程的讲师 Paul Hegarty 是斯坦福大学软件工程学教授, 视频内容讲解得深入, 权威, 深受好评 Advanced iPhone Development - Fall

iOS: 学习笔记, 添加一个带界面约束的控制器

1. 创建一个空iOS应用程序(Empty Application). 2. 添加加控制器类. 修改控制器类的viewDidLoad 1 - (void)viewDidLoad 2 { 3 [super viewDidLoad]; 4 //创建标题 5 UILabel *header = [[UILabel alloc] init]; 6 header.text = @"欢迎来到我的世界!"; 7 header.textAlignment = NSTextAlignmentCenter

很好的iOS学习资料

https://github.com/vsouza/awesome-ios 汇集了很多好的资料 https://github.com/vsouza/awesome-ios Skip to content This repository Pull requests Issues Gist You don’t have any verified emails. We recommend verifying at least one email. Email verification helps ou

iOS学习之iOS沙盒(sandbox)机制和文件操作复习

1.iOS沙盒机制 iOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等. 1.1.每个应用程序都有自己的存储空间 1.2.应用程序不能翻过自己的围墙去访问别的存储空间的内容 1.3.应用程序请求的数据都要通过权限检测,假如不符合条件的话,不会被放行.     通过这张图只能从表层上理解sandbox是一种安全体系,应用程序的所有操作都要通过这个体系来执行,其中核心内容是

ios学习-delegate、传值、跳转页面

ios学习-delegate.传值.跳转页面 1.打开xcode,然后选择ios--Application--Empty Application一个空项目. 项目目录: 2.输入项目名称以及选择保存路径即可. 3.创建文件夹Model.Controller. 4.Model文件夹创建User类:User.h User.m 代码: User.h: [html] view plaincopy #import <Foundation/Foundation.h> @interface User : N

iOS: 学习笔记, 用代码驱动自动布局实例

iOS自动布局是设置iOS界面的利器. 本实例展示了如何使用自动布局语言设置水平布局, 垂直布局 1. 创建空白iOS项目 2. 添加一个控制器类, 修改YYAppDelegate.m文件 #import "YYAppDelegate.h" #import "YYViewController.h" @implementation YYAppDelegate - (BOOL)application:(UIApplication *)application didFin

iOS: 学习笔记, 使用performSelectorOnMainThread及时刷新UIImageView

在iOS中, 界面刷新在主线程中进行, 这导致NSURLSession远程下载图片使用UIImageView直接设置Image并不能及时刷新界面. 下面的代码演示了如何使用 performSelectorOnMainThread: withObject:  waitUntilDone: 方法来及时刷新图片 1. 创建iOS空应用程序(Empty Application). 2. 加入一个控制器类. 在YYAppDelegate.m中修改 #import "MainViewController.h

iOS学习之NSBundle介绍和使用

iOS学习之NSBundle介绍和使用 http://blog.csdn.net/totogo2010/article/details/7672271 新建一个Single View Application,并在加入viewDidLoad方法里加入如下代码: [cpp] view plaincopy //    通过使用下面的方法得到程序的main bundle NSBundle *mainBundle = [NSBundle mainBundle]; NSString *imagePath =