2010-10-12 1 views
0

У меня есть NSDictionary с NSString и NSArrayСохранить часть NSDictionary

Я должен спасти только NSArray в переменной, не зная ключа.

Возможно ли это?

+0

Просто любопытно, как w вам нужно это сделать; возможно, есть более простое дизайнерское решение. – jlehr

ответ

1

Если я правильно понимаю вас, у вас есть словарь, содержащий как NSString, так и NSArray, и вы хотите извлечь только NSArray, не зная, что такое ключ.

Один из способов сделать это, чтобы просматривать словарь с быстрым перечислением:

NSString *key; 
for(key in someDictionary){ 
    id someObject = [someDictionary objectForKey: key]; 
} 

, а затем посмотреть на объекты, чтобы увидеть, какой из них является NSArray:

if ([someObject isKindOfClass:[NSArray class]]) { 
     // do something with the array 
    } 

(обязательное предупреждение : явная проверка класса объекта часто является признаком ошибочного дизайна. В большинстве случаев вы должны проверять поведение (-respondsToSelector), а не на идентификатор класса)

+0

isMemberOfClass Я не знаю этот метод! Фантастический Thx много – Kazzar

+0

Вы также можете проверить isKindOfClass, который также охватывает подклассы. –

+0

Я считаю, что вам нужно использовать '-isKindOfClass'; 'NSArray' является абстрактным. – jlehr