2010-09-04 99 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