내 Row 클래스에서 나는 initWithCoder 메소드를 가지고 있으며 그 메소드에서 복원 된 모든 것이 잘 작동하지만 메소드 내에서만 작동합니다. 메서드가 호출 된 후 내 Row 클래스에있는 소리 배열을 잃어버린다. 사운드 클래스도 initWithCoder 메서드를 가지고 있으며 사운드는 잘 재생되지만 Row 클래스의 initWithCoder 메서드에서만 재생됩니다. Row 객체를 디코딩하면 사운드 배열이 완전히 사라지고 호출 할 수 없습니다.내 소리는 어디 갔지?
- (id) initWithCoder:(NSCoder *)coder {
...
soundArray = [coder decodeObjectForKey:@"soundArray"];
NSLog(@"%d",[soundArray count]);
return self;
}
로그가 정상적으로 추천 등의 수를 (이 아카이브 해제 상태)을 보여줍니다
다음은 initWithCoder 내 소스입니다. 그런 다음 내가 만든 행 객체가 할당됩니다. 결과 행 객체에는 더 이상 soundArray가 없습니다.
[NSKeyedArchiver archiveRootObject:row toFile:@"DefaultRow"];
...
row = [NSKeyedUnarchiver unarchiveObjectWithFile:@"DefaultRow"];
이제 soundArray를 호출 할 때마다 충돌이 발생합니다.
//ERROR IS HERE
NSLog(@"%d",[[row soundArray] count]);
도움말 (soundArray는 NSMutableArray입니다.)
방금 내 모든 문제를 해결했습니다. 감사합니다. –
Dane Man : 당신에게 연결된 문서를 건너 뛰지 마십시오. 그것을 읽고 모든 것을 읽으십시오. 그것은 모든 코코아와 코코아 터치 프로그래머를위한 필수 읽기입니다. –