2012-05-05 63 views
1

是否有可能做线沿线的一些可变地命名变量:在客观C++

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

创建一个名为ENTITY1,ENTITY2,ENTITY3,Entityn变量? 我不在乎我如何去做,我只是需要类似变量命名变量的东西。如果有任何用途,它们将被添加到数组中。

回答

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派生的语言,其中的变量是静态分配的情况。你必须明确地创建任何动态数据结构。

+0

其实我来自BASH,你可以从其他变量的变量名称,但无论如何谢谢你...将创建为tmpObject的对象然后将数组添加到数组工作? 有点像:(tmpObject创建东西) tmpObject addtoarray stuff 然后我可以访问他们的对象,如果我知道它的索引? – DuskFall

+0

@DuskFall如果我正确地理解了你,你在'NSArray' /'NSMutableArray'之后 - 使用'objectAtIndex:'方法可以通过索引查找放置在其中的任何对象,是的。 – pmdj

+0

非常感谢!现在看到我还是新的,我如何标记你并关闭这个问题? – DuskFall