2010-03-19 3 views

답변

2

plist를 +[NSPropertyListSerialization propertyListFromData:…]으로로드 한 다음 결과 개체 -class을 확인하십시오.

if (CFGetTypeID((CFPropertyListRef)myPropertyList) == CFDictionaryGetTypeID()) { 
    // its a dictionary 
} 
0

다음은 코어 재단 방법입니다. NSObject의 isKindOfClass : (또는 isMemberOfClass :)를 사용하여 객체의 클래스가 [NSArray 클래스] 또는 [NSDictionary 클래스]인지 테스트합니다. +[NSObject class]

+0

안녕하세요 Nikolai, 대단히 고마워요,이게 내가 찾고 있었던 것이 었습니다. getArray 및 getDictionary라는 propertyListSerialization을 호출하고 있었지만,이 함수를 호출하기 전에 Array 또는 사전. 다시 한번 감사드립니다. – user272312

0

당신이의 클래스 방법을 사용해서는 안 :

2

는 아래 시도해보십시오 :

볼 애플

NSData *plistData; 
NSString *error; 
NSPropertyListFormat format; 
id plist; 

NSString *localizedPath = [[NSBundle mainBundle] pathForResource:fileName ofType:@"plist"]; 
plistData = [NSData dataWithContentsOfFile:localizedPath]; 

plist = [NSPropertyListSerialization propertyListFromData:plistData mutabilityOption:NSPropertyListImmutable format:&format errorDescription:&error]; 
if([plist isKindOfClass:[NSDictionary class]]){ 
    //do some ... 
} 
if([plist isKindOfClass:[NSArray class]]){ 
    //do some ... 
} 

Additional reading.

관련 문제