如何在iOS上的同一类的不同实例上给名称命名-iPhone

|| 我正在开发一个iPhone应用程序,其中有很多不同的卡,每个卡都代表一辆汽车。因此,每张卡都有一些实例变量和一张图像。我的班级CarCard从.plist文件加载每辆车的数据。我想在一个循环中创建许多实例,以便为每个实例赋予不同的名称。例如:
CarCard *car1 = [[CarCard alloc] initWithSomeINfo: info];
....... *car2 ..........................................;

....... *carN ..........................................;
其中N是汽车数量。问题是我不知道每次的数字N是多少。因此,我必须循环执行实例,但是我找不到如何为实例赋予不同的名称。     
已邀请:
CarCard
个对象组成的
NSMutableArray
是更好的选择。在循环外实例化它:
NSMutableArray *cardArray = [[NSMutableArray alloc] init];
然后在循环中添加对象:
[cardArray addObject:car];
现在您可以通过它们的索引访问它们:
// Card 9, numbering starts at 0
myCar = [cardArray objectAtIndex:8];
编辑添加 如果要按名称而不是在阵列中的位置来引用卡,并且名称将是唯一的,则可以使用字典并按名称来引用卡。在循环外实例化字典:
NSMutableDictionary *cardDictionary = [[NSMutableDictionary alloc] init];
然后在循环中添加对象:
[cardDictionary setObject:car forKey:cardName];
现在,您可以通过它们的名称访问它们:
// Card with the key named \"card9\"
myCar = [cardDictionary objectForKey:@\"card9\"];

// Card with the key named \"monkey\"
myCar = [cardDictionary objectForKey:@\"monkey\"];
    
为什么不创建CarCard实例并将其简单地添加到数组中呢?如果您知道N是什么,那么您的循环就非常简单:
NSMutableArray *carCards = [[NSMutableArray alloc] initWithCapacity:N];
for(int i=0; i<N; i++) {
    NSDictionary *car = [NSDictionary dictionaryWithContentsOfFile:<plist-i>];
    CarCard *carCard = [[[CarCard alloc] initWithSomeInfo:car] autorelease];
    [carCards addObject:carCard];
}
这样的事情。这有帮助吗?     
您可以创建一个NSMutableDictionary并填充它。假设您已经(从plist中)知道需要创建多少个值,则可以这样编写:
for (int count = 1; count <= totalCars; count++)
     [carDict setObject:[[CarCard alloc] initWithSomeInfo:info] forKey:[NSString stringWithFormat:@\"car%d\", count]];
然后,您可以获得任何编号对象:
CarCard someCard = [carDict objectForKey:[NSString stringWithFormat:@\"car%d\", selectedNumber]];
另外,您可以使用NSDictionary的
allValues
方法获取值的数组:
NSArray *allCards = [carDict allValues];
    

要回复问题请先登录注册