使用for循环在数组中创建具有不同名称的对象

时间:2011-11-26 14:27:48

标签: objective-c xcode object nsarray enumerate

我使用for语句来枚举数组中的所有对象。对于数组中的每个对象,我想使它每次都创建一个不同的对象,所以我可以引用不同的对象,例如数组中有5个字符串对象。我使用for语句来枚举每个对象,每次我想创建一个包含文本@“hello”的nsmutablestring

for (NSString *string in array) {

 // Ignore string variable
 NSMutableString *
 // I have this problem, how do I code it so that it makes a new                                               NSMutableString with a separate name that i can specify 
 // so i can refer to it
  = [NSMutableString alloc] init];

   // More code that is not relevant

}

如果你不明白这里是短暂的.... 在数组中 - 5个对象 枚举数组并每次使用单独的名称创建一个新对象,以便我可以引用它: object1 对象2 object3 object4 object5

更新

通过数组我的意思是NSArray

我的问题是我正在添加uiimageview ...

3 个答案:

答案 0 :(得分:2)

我不确定会得到你的问题...... 数组对象已由其索引唯一标识。 为什么需要不同的名称(NSString *指针)???

当你已经知道这个数组中有多少个字符串以及它们各自代表什么时,这可能是相关的。 (例如,表示程序的一些配置参数的字符串数组......如果有人想到更好的例子:) 在这种情况下,如果您想要一种清晰且独特的方式来访问数组的每个成员,则不需要不同的指针名称,只需对数组的索引使用int常量 - (在C宏中声明,或在例如enum)

答案 1 :(得分:1)

请勿使用for (... in ...),仅使用以下标准:

NSArray *oldArray;
NSMutableArray *newArray;

for (int i = 0; i < oldArray.count; i++)
{
    UIImageView *view = [UIImageView new];
    view.tag = i;
    [newArray addObject:view];
    [view release];
}

NSLog(@"%@", newArray);

编辑:更新以下评论

答案 2 :(得分:1)

如果我正确理解你的问题,我会使用另一个数组

NSMutableArray * arrayOfNewObjects = [[NSMutableArray alloc] init];
for (int n = 0; n < [array count]; n++) {
    //[array objectAtIndex:n] is original object
    [arrayOfNewObjects addObject:[NSMutableString stringWithString:@"hello"]];
}
//[arrayOfNewObjects objectAtIndex:0] would be your first object