我正在创建5个整数变量来在Objective C中存储5个不同的值。例如:intA,intB等
以下是示例代码:
例如:
for (Desframe *obj in [myval allValues])
{
if (obj.A>10.0) {
myLabel.text = @"A";
intA = intA++;
}
else if (obj.B>10.0) {
myLabel1.text = @"B";
intB = intB++;
}
else if (obj.C>10.0) {
myLabe2.text = @"C";
intC = intC++;
}
else if (obj.D>10.0) {
myLabe3.text = @"D";
intD = intD++;
}
else if (obj.E>10.0) {
myLabe4.text = @"E";
intE = intE++;
}
}
将来,我可能需要再增加2个变量。 我想知道如何避免创建5个不同的整数变量,但在一个变量中存储了5个不同的值。我应该使用数组吗? (或)如何专业地处理此代码?
但我希望在同一个类(.m)文件中全局访问此变量。
请分享您的建议和指导。
答案 0 :(得分:1)
您可以使用NSMutableDictionary
将密钥作为A
- E
,并将整数作为值。
这样,例如,要添加值(现在为5,将来可能更多),您可以写:
[dict setObject:@123 forKey:@"A"];
要检索它们:
[dict objectForKey:@"A"];
答案 1 :(得分:1)
是的,您可以使用NSMutableArray
。但是,Objective-C NSArray
有点奇怪,因为它们只能包含对象。你必须" box"作为NSNumber对象的条目:
NSMutableArray *numbers = @[@(1), @(2), @(3), @(4), @(5)];
然后你可以从数组中获取一个项目:
NSNumber *aNumber = numbers[0];
但NSNumber对象是不可变的。
您可能想要使用C风格的数组:
UInt64 numbers[] = [1, 2, 3, 4, 5];
然后你可以说
numbers[0]++;
但是使用静态分配的C风格数组,您无法在运行时向数组添加元素。
答案 2 :(得分:0)
您可以定义自己的结构。
struct MyStruct {
int a;
int b;
int c;
int d;
}
在课堂上使用这种新类型
@implementation MyClass {
MyStruct example;
// In your function
for (Desframe *obj in [myval allValues])
{
if (obj.A>10.0) {
myLabel.text = @"A";
example.a += 1;
}
else if (obj.B>10.0) {
myLabel1.text = @"B";
example.b += 1;
}
// And so on ...
}
}
}