plist 파일의 데이터를 NSMutableArray로 구문 분석하려고합니다. 내 PLIST 루트에서NSMutableArray에서 값을 추출하는 데 문제가 있습니다.
내가 함께 IBOutlet UILabel의 * LBL4 객체로 꺾어 레이블을 만든
6 개 숫자의 배열을 포함하는 사전 내가 라벨을 만든 배열의 첫 번째 요소를 표시하려면 plist 읽기. 문제는 할당 명령어 (마지막 명령어)에서 프로그램이 충돌한다는 것입니다. 내 코드는 이것이다 :
이<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Dadi</key>
<array/>
<key>D4</key>
<integer>0</integer>
<key>D6</key>
<integer>0</integer>
<key>D8</key>
<integer>0</integer>
<key>D10</key>
<integer>0</integer>
<key>D12</key>
<integer>0</integer>
<key>D20</key>
<integer>0</integer>
</dict>
</plist>
디버그 출력이 "라고 2012년 9월 2일 18 : 29 : 55.483 믿음 [6014 : 707] 을
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docPath = [paths objectAtIndex:0];
NSString *plistPath = [docPath stringByAppendingPathComponent:@"settings.plist"];
if(![[NSFileManager defaultManager] fileExistsAtPath:plistPath]);
{
plistPath = [[NSBundle mainBundle] pathForResource:@"settings" ofType:@"plist"];
}
NSData *plistXML = [[NSFileManager defaultManager] contentsAtPath:plistPath];
NSString *err = nil;
NSPropertyListFormat format;
NSDictionary *temp = (NSDictionary *) [NSPropertyListSerialization propertyListFromData:plistXML mutabilityOption:NSPropertyListMutableContainersAndLeaves format:&format errorDescription:&err];
if(!temp)
{
NSLog(@"Error reading plist: %@, format: %d", err, format);
}
self.dataSet = [NSMutableArray arrayWithArray:[temp objectForKey:@"Dadi"]];
[lbl4 setText:[NSString stringWithFormat:@"%@", [dataSet objectAtIndex:0]]];
PLIST 소스 코드는 다음과 같습니다 * 인해 캐치되지 않는 예외 'NSRangeException'응용 프로그램 종료, 이유는 : '* - [__ NSArrayM objectAtIndex :] : 빈 배열 범위를 넘는 인덱스 0' "당신의 plist에서
충돌 오류 메시지 란 무엇입니까? –
그리고 속성 목록을 보여줄 수 있습니까? (어떤 실제 문자열 foo - ize 무료) –
plist 추가 및 질문에 디버그 출력! –