2012-09-02 5 views
0

새로운 주석을 삽입하고 이전 주석과 다르게 주석이 미친 듯 행동합니다. 영역의지도가 표시되면 대리인은 원거리 영역에 속한 주석을 전달 받아 자체 기능을보고합니다. 그럼에도 올바른 주석이 나타나야하는 위치에 정확히 나타납니다! 이는 90 %의 시간에 발생하며 나머지는 올바른 주석이며 표시되는 주석은 항상 사용 가능한 속성의 엄격한 하위 집합에 속합니다.지도에 잘못된 주석보기가 표시되고 있습니다.

이상한 행동을 일으키고 그것을 해결하는 방법은 무엇입니까?

문제는 모든 곳에서 제안 된 정적 식별자를 사용하는 것이 었습니다. 주석에 의존적 인 식별자를 가진 문자열을 사용하면 모든 것이 정렬됩니다.

+0

재사용 된 특수 효과 뷰가 올바르게 처리되지 않을 수 있습니다. viewForAnnotation 대리자 메소드를 게시하십시오. – Anna

+0

명확하게 설명했듯이 튜토리얼에서 제안한 정적 식별자를 사용했지만 어디서나 똑같은 주석을 재사용했다. 내가 그 dequeueReusableAnnotationViewWithIdentifier 프로토콜에 명확하지 않다는 것을 말해야합니다! –

+0

각 주석에 대해 다른 식별자를 사용하면 문제가 "해결"될 수 있지만 재사용이 불가능하며 많은 주석이있는 경우 성능에 영향을 줄 수 있습니다. – Anna

답변

-1

실제로 각 주석에 식별자를 사용해야했습니다. 너무 좋지는 않았지만 정보가 다르기 때문에 모든 정보를 동일하게 만들 수는 없습니다.

+0

@AnnaKarenina가 이미 말했듯이 식별자는 주석 객체가 그려지는 재사용 풀을 나타냅니다. 주석은 이와 관련하여 표 셀과 같습니다. 풀에서 이전에 사용한 주석을 그릴 때는 완전히 다시 구성해야합니다. 그렇지 않으면 이전에 사용했던 기능이 남아있게됩니다. 특정 주석을 식별하는 데 어려움이있는 경우 고유 한 주석 하위 클래스를 사용하고이 정보를 전달할 사용자 정의 ivar를 지정하십시오. 재사용 풀 식별자를 오용하지 마십시오. – matt