我正在创建一个iPhone应用程序,它使用带有占位符文本的UIButton
来添加和减去预定义的常量值;也就是说,如果有3个标题为A,B和C的按钮,每个按钮都有与之关联的数值,我需要采用最简单的方法来获取按钮的值(不是每个按钮上都明确显示的) )并将它们加在一起。因此,如果A = x且B = y,并且用户按下按钮A和B,然后按下输入或计算按钮,则将计算并显示A + B(x + y)的值。我目前的计划是使用NSArray
,并将A和B的值附加到其上,但一如既往,欢迎第二种意见。希望这个解释很简单,易于理解。我需要这个能够添加(理论上)无数个变量。即:A和B多次,但也有C,D,E ......等。这是我考虑NSArray
的主要原因。
答案 0 :(得分:1)
将所需的值放在每个按钮的tag属性中。
答案 1 :(得分:1)
您可以创建一个包含与之关联的数据的UIButton子类。您可以设置按钮的标签,并使用标签作为索引从NSArray中获取数据。
答案 2 :(得分:0)
是否总会有两个且只有两个数字要添加?如果是这样,NSArray似乎有点矫枉过正。考虑NSArray是一个指针,数组存储的每个对象都是一个指针。那将是n + 1个指针,或者在添加2个数字时指向3个指针。为什么不使用整数(或浮点数,或任何适合的类型)来存储总数,另一个整数来存储按钮行为的当前状态?
假设您正在为包含三个按钮的视图使用控制器类。每个按钮在控制器方法中具有相关联的动作。可以在控制器类中声明这两个NSUInteger变量以及用于跟踪是否添加数字的BOOL:
NSUInteger total;
NSUInteger buttonsPressed;
BOOL adding;
当没有按下任何按钮时,buttonsPressed显然等于零。按下第一个按钮时,您将执行以下操作:
if (buttonsPressed == 0) {
total += [[pressedButton text] intValue];
} else {
if (adding) {
total += [[pressedButton text] intValue];
} else {
total -= [[pressedButton text] intValue];
}
}
buttonsPressed++;
if (buttonsPressed == 2) {
// display answer and reset variables
[answerField setText:@"%d", total];
total = 0;
buttonsPressed = 0;
}