Google지도에서 많은 GMSMarkers를 사용하고있는 앱입니다. iPhone 5를 제외한 다른 모든 장치에서 완벽하게 작동합니다. GMSMarker를 하위 클래스로 만들고 하위 클래스에 개체 ID를 설정했습니다. 이것은 마커를 NSSet에 추가하고 플롯되고 중복되지 않는 뚜렷한 마커 만 있는지 확인하기 위해 수행됩니다. 서브 클래스는 다음과 같습니다GMSMarker를지도에 추가 할 때 iPhone 5에서만 앱이 다운됩니다. EXC_BAD_ACCESS
@implementation BYOMarker
-(BOOL)isEqual:(id)object
{
BYOMarker *otherMarker = (BYOMarker *)object;
if (self.objectID.intValue == otherMarker.objectID.intValue) {
return YES;
}
return NO;
}
-(NSUInteger)hash
{
return [self.objectID hash];
}
@end
.H 파일
#import <GoogleMaps/GoogleMaps.h>
@interface BYOMarker : GMSMarker
@property (assign, nonatomic) NSNumber *objectID;
@end
앱이 EXC_BAD_ACCESS 예외와 해시 함수의 반환에 충돌한다. 나는 좀비 오브젝트를 활성화하고 내가 마커에 대한지도 객체를 설정있을 때 포 marker.objectID를 인쇄하려고 나는 다음과 같은 오류 얻을 :
*** -[CFNumber respondsToSelector:]: message sent to deallocated instance 0x80416470
0x80416470
어떤 도움을?! TIA
objectID를 지정하는 대신 강하게 사용하십시오. –