我已經包含某種類型(的NSDictionary)的一些對象一個NSArray實例..如何創建Objective-C中任意類型(ID)的一個實例
我需要這個陣列複製到的一些一個NSArray運行時已知類型。
所以我需要創建運行時已知類型的實例並將NSDictionary的內容複製到。
我實際上已經創建了NSObject類型的這些實例,但是在查詢後頭時,我得到了unrecognized selector
錯誤!
NSUInteger count = [value count];
NSMutableArray* arr = [[NSMutableArray alloc]initWithCapacity:count];
if (count > 0)
{
for (int i=0; i < [value count]; i++)
{
id newObj = [[NSObject alloc] init];
id currentValue = [value objectAtIndex:i];
[self objectFromDictionary:currentValue object:newObj];
[arr addObject:newObj];
}
}
[arr release];
編輯: objectFromDictionary
忘掉它,它做的是檢查的newObj
的屬性,並通過從字典中的值設置。它的工作很好。
EDIT 2:
請參閱爲什麼我試圖做到這一點:
Type of objects inside non-parameterized arrays in JSON
到底是什麼你'objectFromDictionary:對象:'應該做的事情,你應該張貼的代碼因爲分配一個NSObject通常毫無意義。 – Joe
這不是NSCopying copyWithZone的用途嗎?只要你想複製的對象實現copyWithZone,它應該可以工作。如果該對象沒有實現copyWithZone,那麼就搞砸了。 –