一,计算器
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;
- (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)
逻辑&& 和 ||有可能会屏蔽后面的代码,位&和为| 不会屏蔽。