2010-07-15 3 views
0

[NSMutableArray writeToFile]에 의해 NSMutableArray에서 작성된 plist가 있습니다. 다음 코드와 같은 PLIST를로드하려고 할 때 :.plist에서 NSArray를로드 할 때 EXC_BAD_ACCESS

NSArray *testArray = [NSArray arrayWithContentsOfFile:[self pathForDataFile:@"reportingSpeicher.plist"]]; 
NSLog(@"count = %@",[testArray count]); 

나는 카운트 또는 내가 testArray 입어 다른 동작에 나쁜 액세스 할 수 있습니다. 하지만 :

NSLog(@"testArray = %@", testArray); 

제대로 반환 내가 관련된 몇 가지 기본적인 메모리 관리 나 어떻게 든있는 NSArray /하지 손상 반환 유형 중 하나가 추측하고있어

testArray = (
     { 
     benutzername = "t.h"; 
     datum = "2010-07-15"; 
     dauerInStunden = 1; 
     phasenName = "Projektsteuerung,32"; 
     projektName = "projekt AG,23"; 
     soapSpeicher =   { 
      PasswortAsMD5 = someMD5sum; 
      benutzername = "t.h"; 
      datum = "2010-07-15"; 
      dauerInStunden = 1; 
      phasenid = 32; 
      projektid = 23; 
      taetigkeit = whateveryoudid; 
     }; 
     taetigkeit = whateveryoudid; 
    }) 

합니다. 이 세 줄은 실제로는 충분히 단순해야합니다. 나는 그것을 작동시킬 수 없습니다. 나는 어떤 도움을 주셔서 감사합니다!

답변

0

배열을 먼저 초기화해야합니다. NSArray *testArray = [[NSArray alloc] initWithContentsOfFile:[self pathForDataFile:@"reportingSpeicher.plist"]];을 사용하십시오.

+0

완벽! 감사. – Tobias

0

NSLog 문이 올바르지 않습니다. % @ 형식 문자열은 Objective-C 객체를 출력 할 때 사용되지만 [testArray count]는 일반 int를 반환하고 NSLog가 결과를 보내려 할 때 -description 메시지를 출력하려고하면 충돌이 발생합니다. 대신 정수 값을 출력하기 위해 % d를 사용하는 것이 좋습니다.

NSLog(@"count = %d",[testArray count]); 
+0

브라이언, 고맙습니다. 문제는 해결되지 않았지만 NSLog는 실제로 올바르지 않습니다. – Tobias

관련 문제