Получить тип объекта, который случайно выбран из массива? - PullRequest
2 голосов
/ 11 ноября 2011

У меня есть NSArray, который заполнен различными типами объектов. Допустим, один - NSDictionary, а другой - NSData. Как бы я случайно выбрал объект из этого массива, а затем проверил, что это за объект. Так что, если это NSDictionary, я буду делать метод А. Или, если это NSData, я буду делать метод B.

Как бы я поместил это в код?

Спасибо!

Ответы [ 2 ]

7 голосов
/ 11 ноября 2011

Переведено в Objective-C

 id obj = [array methodThatReturnsARandomObject];
 if ([obj isKindOfClass:[NSDictionary class]]) {
    a();
 } else if ([obj isKindOfClass:[NSData class]]) {
    UIImage *image = [UIImage imageWithData:obj]
 }

Или вы можете сделать

 NSObject *obj = [array methodThatReturnsARandomObject];
 if ([obj isKindOfClass:[NSDictionary class]]) {
    a();
 } else if ([obj isKindOfClass:[NSData class]]) {
    UIImage *image = [UIImage imageWithData:(NSData *)obj]
 }

Не имеет значения.

1 голос
/ 11 ноября 2011

Вы можете использовать генератор случайных чисел, который получит число от 0 до последнего индекса вашего массива. Затем, как только вы получите объект, вы можете использовать метод isKindOfClass или isMemberOfClass для объекта, возвращаемого из массива.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...