我希望能够将对象添加到NSArray
并使用Keys访问它们。目前我正在这样做的方式是创建一个单独的NSDictionary
键值对,其中值是一个整数,表示我NSArray
中的索引。这对我来说似乎是一个额外的步骤。
如果我对NSDictionary
的理解是正确的,那么只能存储'值':指向对象的指针不能。
当然必须有一个等效的NSDictionary
类型函数,允许使用密钥存储和访问对象?我查看了文档,但似乎无法找到任何答案,除非我遗漏了一些明显的东西。
答案 0 :(得分:1)
NSDictionary用于存储键值对。如果在创建dictioanry后添加键值对,请使用NSMutableDictionary类。例如,
[dictionaryObject setObject:@"" forKey:@"abc"];
答案 1 :(得分:1)
您可以将对象存储在NSDictionary
中,并可以通过keys
...
答案 2 :(得分:1)
简而言之,没有。
数组(NSArray
)是对象引用的有序集合,简单地说,是一个有序的对象集合。
与字典相反,字典是无序的,并且值可以通过键访问。
您对集合的理解可能是错误的,您不存储值,而是指针(引用)。
如果需要将引用存储在数组中,则需要额外的步骤,但在这种情况下,您应该考虑使用字典。一个选项是使用处理订单的键 例如:
[myDictionary objectForKey:@"1"];
可能相当于:
[myArray objectAtIndex:1];
答案 3 :(得分:0)
多数民众赞成错误,您可以将对象存储在NSDictionary中。查看方法dictionaryWithObjects:forKeys:
或dictionaryWithObjectsAndKeys:
答案 4 :(得分:0)
我没有使用Cocoa的经验,但查看文档似乎NSDictionary
(或至少NSMutableDictionary
)应该处理您的请求(不使用NSArray)。
答案 5 :(得分:0)
我想我理解你的问题。我的建议是使用NSMutableArray
和宏,如:
NSMutableArray *array=[[NSMutableArray alloc]init];
#define SOME_MACRO 0
id someObject;
[array insertObject:someObject atIndex:SOME_MACRO];
id getterObject=[array objectAtIndex:SOME_MACRO];
<小时/> 当然,在头文件中定义宏。