我只需要一些帮助来创建一个可以存储多个字典的数组。 我:如何用字典创建数组?
.H
NSArray * projects;
NSDictionary *project1;
NSDictionary * project2;
.M
projects = /* What should I write here to store the
above two dictionaries in my array. */
感谢,
我只需要一些帮助来创建一个可以存储多个字典的数组。 我:如何用字典创建数组?
.H
NSArray * projects;
NSDictionary *project1;
NSDictionary * project2;
.M
projects = /* What should I write here to store the
above two dictionaries in my array. */
感谢,
projects = [[NSArray alloc] initWithObjects:project1, project2, nil];
基本上(这将是正确的或不完全正确取决于你的实际代码,声明,属性等)。因为你宣布projects
作为NSArray
,你可以做到以下几点:当它超出范围,除非你保留它
projects = [NSArray arrayWithObjects: project1, project2, nil];
这个变量将消失神奇。
或者,如果你声明projects
作为NSMutableArray
并与属性(retain, nonatomic)
的属性,你可以做这样的事情:
NSMutableArray *a = [[NSMutableArray alloc] initWithObjects:project1, project2, nil];
self.projects = a;
[a release];
有几种方式来实现自己的目标,这取决于你的整体需求阵列。
我不知道,如果你正在寻找的是更复杂那么这个,而是:
projects = [[NSArray alloc ] initWithObjects:project1,project2, nil];
应该工作。
如果你在追求更复杂的东西,那么这让我知道我会修改我的答案。
可以说我有n个数字化词典,我希望它们都存储在NSArray中,比如项目0,item1等。 – Ashutosh 2011-05-27 20:51:52
Isn那不就是他写的吗?你将能够从[projects objectAtIndex:n]获取NSDictionary; – LuckyLuke 2011-05-27 20:54:18
你是否确切地知道你会有多少个字典,或者每次调用这个类时数量会有所不同。如果你知道n,那么你可以使用一个循环来通过调用InsertObject将每个字典添加到一个NSMutableArray中。http://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSMutableArray_Class/Reference/Reference。 html – CodeGuru 2011-05-27 21:00:44
arr = [[NSArray alloc ] initWithObjects:dict1,dict2, nil];
您对于可变对象的理解完全错误。 – kovpas 2011-05-27 20:46:33
@kovpas:我不同意;我只是提供了一种替代方法,旨在探索如何初始化数组的可能性,因为OP没有真正提供有关阵列将如何使用的任何线索。也许OP不理解可变对象和不可变对象之间的区别,现在他们还有其他的东西需要去了解。也许你会解开我的答案...... – 2011-05-27 20:50:29
所以,在这种情况下,你可以建议使用UITableView而不是NSArray。以防万一,如果我们不知道OP真正想说些什么;)。 – kovpas 2011-05-27 20:53:28