2010-09-04 105 views
2

我有一个NSDictionary中,我也得到对象和键,“ID”类型的格式,用下面的代码:“ID”类型对象的NSArray问题

NSDictionary *temp =[[NSDictionary alloc]initWithObjectsAndKeys:array1,@"array1",array2,@"array2",nil]; 
    NSInteger count = [temp count]; 
    id objects[count]; 
    id keys[count]; 
    [temp getObjects:objects andKeys:keys]; 

如果数组1和数组2是NSArrays。 有没有办法将id对象[n]转换为NSArray? (在这个例子中没有任何意义,因为array1和array2已经存在,但这在很多方面会有所帮助)

回答

2

是的。你的数组objects是C数组,其中有count项。 NSArray有一个初始化已经做了你需要的东西:

+ (id)arrayWithObjects:(const id *)objects count:(NSUInteger)count 

所以,你会在这种情况下做

NSArray * myNewArray = [NSArray arrayWithObjects:objects count:count]; 

Docs here.

+0

那么这工作正常,但我的意思是像ID对象[0]的转化(其中包含ARRAY1值)回到原来的NSArray [I解析来自文件流检索的某些原始数据时需要它,所以它比我写的示例代码复杂一点] – 2010-09-04 21:32:49

+0

“回到原始数组”是什么意思? objects [0]已经是其中的一个数组,而object [1]已经是另一个了。你只是把相同的东西从字典中拉出来。请注意,订单不能保证,因为字典固有地无序。如果您想知道哪个是哪个,请与密钥字符串进行比较。 – 2010-09-04 21:53:15

+1

啊这个评论是我一直在寻找:) – 2010-09-05 08:16:52