在目标c ++中可变地命名变量

时间:2012-05-05 15:00:05

标签: objective-c++

是否可以采取以下措施:

 Entity [NSString stringWithFormat:@"Entitiy%i",entitiesCreated];

创建一个名为Entity1,Entity2,Entity3,Entityn的变量? 我不关心我是怎么做的,我只需要一些类似于变量命名变量的东西。如果有任何用途,它们将被添加到数组中。

1 个答案:

答案 0 :(得分:0)

不是“变量”,但按名称存储数据的典型方法是通过关联数据结构,例如NSMutableDictionary(在ObjC中)或std::unordered_mapstd::map(在C ++)。你有没有调查过那些?特别是,例如,这似乎是你想要做的事情:

NSMutableDictionary* dict = [NSMutableDictionary dictionaryWithCapacity:1];
[dict addObject:somevalue forKey:[NSString stringWithFormat:@"Entity%i",entitiesCreated]];

然后,访问值:

id val = [dict valueForKey:@"Entity1"];

左右。

我假设您来自另一种编程语言,例如JavaScript或PHP,其中这种关联数据结构用于保存所有变量 - 在C派生语言中不是这种情况,其中变量是静态分配的。您必须明确创建任何动态数据结构。