Как создать экземпляр любого типа (id) в Objective-c - PullRequest
0 голосов
/ 26 сентября 2011

У меня есть экземпляр NSArray, содержащий некоторые объекты некоторого типа (NSDictionary) ..

Мне нужно скопировать этот массив в 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:

Пожалуйста, посмотрите, почему я пытаюсь сделать это:

Тип объектов внутри непараметрических массивов вJSON

1 Ответ

2 голосов
/ 26 сентября 2011

Измените:

id newObj = [[NSObject alloc] init];

на:

id newObj = [[NSMutableArray alloc] init];

или:

id newObj = [[NSClassFromString(@"NSMutableArray") alloc] init];

или, если вы хотите получить класс из существующего объекта:

id newObj = [[[existingObj class] alloc] init];
...