2010-02-08 5 views
0

문제가 발생했습니다. 매번 내 앱을 시작할 때마다 충돌이 발생합니다. 코드가 나옵니다. 디버거에 다음과 같이 표시됩니다. [list count]이 앱을 종료합니다. 나는 모른다. NSLog(@"%@", self.list); 나에게 예상대로 하나 개의 항목 ...NSMutableArray Count가 내 응용 프로그램을 중단시키는 이유는 무엇입니까?

if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) { 
    data = [[NSData alloc] initWithContentsOfFile:filePath]; 
    unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data]; 

    NSMutableArray *array = [unarchiver decodeObjectForKey:@"TOWN"]; 
    [unarchiver finishDecoding]; 
    [unarchiver release]; 
    [data release]; 

}을 제공

self.list = array; 
    NSLog(@"%@", self.list); 
    NSLog(@"count %i", [list count]); 

그렇게 생성 된 열 아카이브 : 당신이 필요로하는 경우

Adding *adding = [[Adding alloc] init]; 
adding.nummer = 1; 
adding.stadt = stadt.text; 


NSMutableData *data = [[NSMutableData alloc] init]; 
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] 
          initForWritingWithMutableData:data]; 
[archiver encodeObject:adding forKey:@"TOWN"]; 
[archiver finishEncoding]; 
[data writeToFile:[self dataFilePath] atomically:YES]; 

어떤 학습과 코드가 저를 보자 알고있다. 나는 어떤 도움 :)

+0

ivar 목록은 어떻게 선언됩니까? –

+0

[self.list count]가 충돌합니다 (목록과 자기 목록은 동일합니까?) – Mark

+0

예. 그것은 동일합니다. 둘 다 충돌하고 있습니다 ... – rdesign

답변

1

매우 thankfull 될 나는 문제는 여기에 추가 클래스를 인코딩하는 것입니다 생각 : 당신은 당신이 얻을하려고 디코딩 할 때 아직있는 NSMutableArray하지

[archiver encodeObject:adding forKey:@"TOWN"]; 

NSMutableArray로 돌아 왔습니다.

NSMutableArray *array = [unarchiver decodeObjectForKey:@"TOWN"]; 

그리고 Add 클래스가 추측됩니다. 배열이 아닙니다.

+0

당신의 권리, 그것이 그것을 추가하는 클래스로 해독하면 작동합니다. 그러나 책에 명시된 바와 같이 nsmutablearray에 할당하십시오. http://apress.com/book/downloadfile/4476 (예 : 09 번을 살펴볼 수 있습니다.) PresidentsViewController.m – rdesign

+0

에서 방금 샘플을 살펴 보았습니다. @ "Presidents"는 pList 파일입니다. –

+0

도움 주셔서 감사합니다! 예, 보관되었습니다. 내가 만든 것은 같은 방법으로 만들어집니다. 방금 ​​뭔가 알았습니다. 그들이 만든 아카이브는 NSMutableArray와 같은 마지막 항목 정의로 있습니다. 내 것은 추가 중입니다. 어떻게 그것을 바꿀 수 있습니까? EDIT : 항목 138은 클래스를 보여줍니다 ... – rdesign

관련 문제