第四天笔记和计算器关键代码

本文介绍了计算器的设计方法,包括如何布局控件以达到美观效果,以及如何通过不同实例方法来处理点击事件。同时,还提供了计算器核心逻辑的实现代码,并分享了关于常量、变量及内存管理等基础知识。

一,计算器



1,所有控件都放在一个view控件上,这样可以是界面更加美观。


2,控件在生成实例方法的有两种方法

每一个控件都生成一个实例方法

类似控件生成同一个实例方法 eg:计算机的所有数字生成一个实例,运算符生成一个实例

获得控件text属性的代码

float value=[sender.currentTitlefloatValue];


3.if else 的两种表达形式

if (self.op =='+') {

       return self.opfirst +self.opsecond;

    }

   else if(self.op=='-')

    {

       return self.opfirst -self.opsecond;

    }

   else if(self.op=='*')

    {

       return self.opfirst *self.opsecond;

        

    }

   else if(self.op=='/')

    {

       return self.opfirst /self.opsecond;

    }

   return 0;



if(self.op=='+')

        return self.a+self.b;

   if(self.op=='-')

        return self.a-self.b;

   if(self.op=='*')

        return self.a*self.b;

   if(self.op=='/')

        return self.a/self.b;

    else return0;


4、关键代码

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

   float value=[sender.currentTitlefloatValue];

   if(c.op=='+'||c.op=='-'||c.op=='/' ||c.op=='*')

    {

        

       if(c.dian=='.')

       {

           c.opsecond=c.opsecond+value/i;

          i=i*10;

       }

       else

       c.opsecond=c.opsecond*10+value;

        

       self.didClickedview.text=[NSStringstringWithFormat:@"%f",c.opsecond];

    }

   else

    {

       if(a.dian=='.')

        {

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

           i=i*10;

        }

       else

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


       self.didClickedview.text=[NSStringstringWithFormat:@"%f",a.opfirst];

    }

}





二、笔记

补充上一天的知识:实例方法可以访问成员变量,属性(通过_~~)

类方法不可以访问成员变量和属性。

属性相当于实例方法  

方法的调用:[ ]

1、常量和变量

const 常量     const   int  a;     (有分号和类型)     //运行到它时替换,在使用时会进行类型检查,建议使用。


define 常量    eg: #define PI   (无分号和类型)//程序编译时替换,在使用时不会进行类型检查


全局变量:在方法或类外面定义

静态变量:关键字static

成员变量:在方法或类里面定义

栈:手动分配内存(低地址到高地址分配)eg:图片的使用

堆:自动分配内存 (高地址到低地址分配) eg:int a; (注意考虑作用域)


2、随记

打印类型长度:Nslog(@“%zu”,sizeof(int));

32位long 输出4位,64位long 输出8位;


打印地址:Nslog(@“%p”,&i  );

转义字符“ \ ”," % "   ("%%"显示“ % ”);

char c=‘ a ’;

char c1=0x61;

(1-3)位   \0 八进制

  (1-2)位      \X   十六进制

赋值->   访问self 和  .    ;

十六进制转化为十进制快捷方法 :先转化为二进制在转化位十进制(四位0000)

八进制转化为十进制快捷方法 :先转化为二进制在转化位八进制(三位000)


逻辑&& 和 ||有可能会屏蔽后面的代码,位&和为| 不会屏蔽。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值