将文本链接到整数 Objective C
Linking Text to an Integer Objective C
此 post 的目标是找到一种更有效的方法来创建此方法。现在,随着我开始添加越来越多的值,我将拥有一个非常混乱和令人困惑的应用程序。感谢您的帮助!
我正在制作一个锻炼应用程序并为每个锻炼分配一个整数值。例如:
其中数字是exersiceInt
:
01 是高膝盖
02 是开合跳
03 原地慢跑
等等
我正在制作它,所以有一个随机化锻炼的功能。为此,我使用以下代码:
-(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)
我怎样才能使所有内容都只声明一次并使代码不那么混乱和冗长?
一个简单的开始方法是将练习名称放在一个数组中。然后您可以通过索引访问名称。例如 - exerciseNames[exerciseNumber]。您还可以在数组(整数)中制作练习列表。所以你会得到;练习名称[练习表[i]];例如。最终你会想要一个对象来定义一个练习,这样你就可以包括图像、视频、计数、持续时间等。
您可以探索三件事来简化您的代码:
1.从零开始数
如果您从零开始数数,许多事情会变得更容易。一个简单的例子是,如果你的第一个练习编号为 0,那么你的随机计算将只是 rand() % 3
(顺便说一句,查找统一随机数,有更好的方法来获得随机数)。
2。了解枚举
枚举 是一种具有一组命名文字值的类型。在 (Objective-)C 中,您还可以将它们视为命名整数值的集合。例如,您可以声明:
typedef enum
{
HighKnees,
JumpingJacks,
JogInPlace,
ExerciseKindCount
} ExerciseCount;
将 ExerciseCount
声明为具有 4 个值的新类型。其中每一个都相当于一个整数,这里 HighKnees
相当于 0 而 ExerciseKindCount
相当于 3 - 这应该让你想到第一件事,从零开始计数......
3。发现数组
array 是有序的项目集合,其中每个项目都有一个 index - 通常是整数或枚举值。在 (Objective-)C 中有两种基本类型的数组:C 风格和对象风格,由 NSArray
和 NSMutableArray
表示。例如这里是一个简单的 C 风格数组:
NSString *gExerciseLabels[ExerciseKindCount] =
{ @"High Knees",
@"Jumping Jacks",
@"Jog in Place"
}
你现在可能已经猜到了,上面数组的第一项的索引为 0,从零开始计数...
探索这三件事应该可以快速向您展示简化代码的方法。稍后您可能希望探索结构和对象。
HTH
此 post 的目标是找到一种更有效的方法来创建此方法。现在,随着我开始添加越来越多的值,我将拥有一个非常混乱和令人困惑的应用程序。感谢您的帮助!
我正在制作一个锻炼应用程序并为每个锻炼分配一个整数值。例如:
其中数字是exersiceInt
:
01 是高膝盖
02 是开合跳
03 原地慢跑
等等
我正在制作它,所以有一个随机化锻炼的功能。为此,我使用以下代码:
-(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)
我怎样才能使所有内容都只声明一次并使代码不那么混乱和冗长?
一个简单的开始方法是将练习名称放在一个数组中。然后您可以通过索引访问名称。例如 - exerciseNames[exerciseNumber]。您还可以在数组(整数)中制作练习列表。所以你会得到;练习名称[练习表[i]];例如。最终你会想要一个对象来定义一个练习,这样你就可以包括图像、视频、计数、持续时间等。
您可以探索三件事来简化您的代码:
1.从零开始数
如果您从零开始数数,许多事情会变得更容易。一个简单的例子是,如果你的第一个练习编号为 0,那么你的随机计算将只是 rand() % 3
(顺便说一句,查找统一随机数,有更好的方法来获得随机数)。
2。了解枚举
枚举 是一种具有一组命名文字值的类型。在 (Objective-)C 中,您还可以将它们视为命名整数值的集合。例如,您可以声明:
typedef enum
{
HighKnees,
JumpingJacks,
JogInPlace,
ExerciseKindCount
} ExerciseCount;
将 ExerciseCount
声明为具有 4 个值的新类型。其中每一个都相当于一个整数,这里 HighKnees
相当于 0 而 ExerciseKindCount
相当于 3 - 这应该让你想到第一件事,从零开始计数......
3。发现数组
array 是有序的项目集合,其中每个项目都有一个 index - 通常是整数或枚举值。在 (Objective-)C 中有两种基本类型的数组:C 风格和对象风格,由 NSArray
和 NSMutableArray
表示。例如这里是一个简单的 C 风格数组:
NSString *gExerciseLabels[ExerciseKindCount] =
{ @"High Knees",
@"Jumping Jacks",
@"Jog in Place"
}
你现在可能已经猜到了,上面数组的第一项的索引为 0,从零开始计数...
探索这三件事应该可以快速向您展示简化代码的方法。稍后您可能希望探索结构和对象。
HTH