2012-09-05 4 views
1

NSMutableData 객체를 사용하여 시리즈 데이터를 나타내는 32 바이트 구조체 목록을 저장합니다. 이 시리즈는 잠재적으로 확장, 추가, 정렬 등입니다. 불필요한 객체의 할당을 저장하기 위해 새로운 객체를 할당하는 대신 기존 객체에 바이트를 확장 및 추가하려고합니다.NSMutableData 버그 (iPhone)

시뮬레이터에서 몇 가지 이상한 동작을 발견했습니다. 1) setLength 및 increaseByLength를 사용하여 항상 새로운 바이트를 모두 0으로 만들지 않았으며, 2) 수정 후 이러한 객체를 사용하면 충돌이 발생했습니다. 충돌은 모두 매우 다른 영역에 있었지만 항상 EXC_BAD_ACCESS입니다. 꽤 많은 디버깅을 한 후에 mutableCopy를 통해 작업 할 새 객체를 할당하고 완료되면 객체 속성에 할당했습니다. 그게 내가 가진 모든 문제를 해결했습니다.

* 백그라운드 스레드에서 이러한 개체로 작업하지만 동기화 된 블록에서 모든 작업을 래핑했으며 문제의 개체에 대한 경쟁 조건을 관찰하지 못했습니다.

비슷한 기이를 느낀 사람이 있습니까?

감사합니다.

+0

글쎄, 그것은 학기의 시작입니다. 그래, 나는 비슷한 기이함을 발견했습니다. –

답변

0

답변을받지 못했기 때문에 해결책을 찾았습니다. NSData 객체에 포장하기 전에 직접 NSData/NSMutableData 객체를 필요에 따라 재 할당했습니다.