这篇文章的目标是找到一种更有效的方法来创建这个方法。现在,随着我开始添加越来越多的值,我将会有一个非常混乱和混乱的应用程序。任何帮助表示赞赏!
我正在制作锻炼应用并为每个锻炼分配一个整数值。例如:
号码为exersiceInt
的人:
01是High Knees
02是Jumping Jacks
03是Jog in Place
等
我正在制作它,因此有一项随机化锻炼的功能。为此,我使用此代码:
-(IBAction) setWorkoutIntervals {
exerciseInt01 = 1 + (rand() %3);
exerciseInt02 = 1 + (rand() %3);
exerciseInt03 = 1 + (rand() %3);
}
因此,基本上锻炼间隔将首先是随机锻炼(在高膝,跳跃和慢跑之间)。我想要做的是制作一个定义以下内容的通用,所以我不必一直硬编码所有内容。
现在我有:
-(void) setLabelText {
if (exerciseInt01 == 1) {
exercise01Label.text = [NSString stringWithFormat:@"High Knees"];
}
if (exerciseInt01 == 2) {
exercise01Label.text = [NSString stringWithFormat:@"Jumping Jacks"];
}
if (exerciseInt01 == 3) {
exercise01Label.text = [NSString stringWithFormat:@"Jog in Place"];
}
}
一旦我开始为每个锻炼指定图像并开始添加锻炼,我已经可以告诉这个变得非常混乱。另外,我的计划是为exercise02Label
,exercise03Label
等添加相同的代码,这些代码将变得极其冗余且可能不必要。
如果有人说的话,我的想法会很完美
exercise01Label.text = exercise01Int;
(我想说Label的文本等于基于当前整数值的Jumping Jacks)
我怎样才能做到这一点所以我只需要说明一切,让代码更简洁,更少冗长?
答案 0 :(得分:1)
为了让您的代码更轻松,您需要探索三件事:
1。从零开始计算
如果从零开始计算,很多事情会更容易。一个简单的例子是,如果你的第一个练习编号为0,那么你的随机计算就是rand() % 3
(BTW查找统一的随机数,有更好的方法来获得随机数)。
2。了解枚举
枚举是一个带有一组命名文字值的类型。在(Objective-)C中,您还可以将它们视为命名整数值的集合。例如,您可以声明:
typedef enum
{
HighKnees,
JumpingJacks,
JogInPlace,
ExerciseKindCount
} ExerciseCount;
将ExerciseCount
声明为具有4个值的新类型。这些中的每一个都相当于一个整数,这里HighKnees
相当于0而ExerciseKindCount
相当于3 - 这应该让你想到第一件事,从零算起......
3。发现阵列
数组是项目的有序集合,其中每个项目都有索引 - 通常是整数或枚举值。在(Objective-)C中,有两种基本类型的数组:由NSArray
和NSMutableArray
表示的C风格和对象风格。例如,这是一个简单的C风格数组:
NSString *gExerciseLabels[ExerciseKindCount] =
{ @"High Knees",
@"Jumping Jacks",
@"Jog in Place"
}
你现在可能已经猜到了,上面数组的第一项有索引0,从零开始算......
探索这三件事应该可以快速向您展示简化代码的方法。稍后您可能希望探索结构和对象。
HTH
答案 1 :(得分:0)
一种简单的方法是将练习名称放在一个数组中。然后,您可以按索引访问名称。例如 - exerciseNames [exerciseNumber]。您还可以在数组(整数)中制作练习列表。所以你会得到; exerciseNames [exerciseTable [I]];例如。最终,您需要一个对象来定义练习,以便您可以包含图像,视频,计数,持续时间等。