我是IOS的新手,我不确定自己是否走在正确的轨道上。我需要知道的是,如果我走在正确的轨道上,如果我关闭了它,那么我可以回到正轨。可变阵列应该读取一组扬声器并说“Hello, my name is <speakerArray>
”它应该每次使用不同的名称执行8次。这就是我所拥有的:
- (NSArray*)badgesForSpeakers:(NSArray*)speakers {
for(speakers i = 0; i => 7; i++)
{
NSString *greetings =@"Hello, my name is .";
NSMutableArray *badges = [speakers arrayByAddingObjectsFromArray:greetings];
}
return badges;
}
答案 0 :(得分:1)
也许你的意思是
- (NSMutableArray *)badgesForSpeakers:(NSArray *)speakers {
NSMutableArray *badges = [[NSMutableArray alloc] init];
for (NSString *speaker in speakers) {
[badges addObject:[NSString stringWithFormat:@"Hello, my name is %@", speaker]];
}
return badges;
}
答案 1 :(得分:1)
使用此代码
- (NSArray*)badgesForSpeakers:(NSArray*)speakers {
NSMutableArray *badges = [NSMutableArray alloc];
for(int i = 0; i < speakers.count; i++)
{
NSString *greetings =[NSString stringWithFormat:@"Hello, my name is .%@",[speakers objectAtIndex:i]];
badges = [speakers addObject:greetings];
}
return [badges copy];
}
答案 2 :(得分:1)
让我们一步一步走。首先,你的操作员在循环中是错误的;您的意思是在i
less 大于或等于7时执行。因此,请将=>
更改为<=
。但是,说i < 8
更时尚。最后,使用所谓的“快速枚举”是最时尚的,它允许你在没有索引的情况下循环。事实上,无论你的speakers
数组中有多少项,它都会有效!这就把我们带到了这里:
- (NSArray*)badgesForSpeakers:(NSArray*)speakers {
for (NSString* speaker in speakers)
{
NSString *greetings =@"Hello, my name is .";
NSMutableArray *badges = [speakers arrayByAddingObjectsFromArray:greetings];
}
return badges;
}
接下来,greetings
不是数组!这是一个字符串。这就是为什么调用-arrayByAddingObjectsFromArray:
没有任何意义,以及为什么编译器不喜欢它。让我们的名字单数,greeting
,以反映这一事实。 策略:您的目标是创建一个空数组,然后逐个构造项目并将它们添加到该数组中。这需要我们:
- (NSArray*)badgesForSpeakers:(NSArray*)speakers {
NSMutableArray *badges = [NSMutableArray array]; //Here we make an empty array
for (NSString* speaker in speakers)
{
NSString *greeting =@"Hello, my name is .";
[badges addObject:greeting]; //Here we add one item to it each time 'round the loop
}
return badges;
}
最后,你的字符串现在没有插值!它按字面意思 “你好,我的名字是。”我们使用-stringWithFormat:
方法进行字符串插值。
成品:
- (NSArray*)badgesForSpeakers:(NSArray*)speakers {
NSMutableArray *badges = [NSMutableArray array];
for (NSString* speaker in speakers)
{
NSString *greeting = [NSString stringWithFormat:@"Hello, my name is %@.",speaker];
[badges addObject:greeting];
}
return badges;
}
这应该让你开始快速枚举和字符串插值。请记住经常编译代码并尝试理解编译器错误 - 它可以帮助您解决其中的一些问题。