将文本链接到整数目标C.

时间:2016-10-08 03:58:16

标签: objective-c text nsstring int

这篇文章的目标是找到一种更有效的方法来创建这个方法。现在,随着我开始添加越来越多的值,我将会有一个非常混乱和混乱的应用程序。任何帮助表示赞赏!

我正在制作锻炼应用并为每个锻炼分配一个整数值。例如:

号码为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"];
    }
}

一旦我开始为每个锻炼指定图像并开始添加锻炼,我已经可以告诉这个变得非常混乱。另外,我的计划是为exercise02Labelexercise03Label等添加相同的代码,这些代码将变得极其冗余且可能不必要。

如果有人说的话,我的想法会很完美

exercise01Label.text = exercise01Int; (我想说Label的文本等于基于当前整数值的Jumping Jacks)

我怎样才能做到这一点所以我只需要说明一切,让代码更简洁,更少冗长?

2 个答案:

答案 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中,有两种基本类型的数组:由NSArrayNSMutableArray表示的C风格和对象风格。例如,这是一个简单的C风格数组:

NSString *gExerciseLabels[ExerciseKindCount] =
   {  @"High Knees",
      @"Jumping Jacks",
      @"Jog in Place"
   }

你现在可能已经猜到了,上面数组的第一项有索引0,从零开始算......

探索这三件事应该可以快速向您展示简化代码的方法。稍后您可能希望探索结构和对象。

HTH

答案 1 :(得分:0)

一种简单的方法是将练习名称放在一个数组中。然后,您可以按索引访问名称。例如 - exerciseNames [exerciseNumber]。您还可以在数组(整数)中制作练习列表。所以你会得到; exerciseNames [exerciseTable [I]];例如。最终,您需要一个对象来定义练习,以便您可以包含图像,视频,计数,持续时间等。