0

Googleマップ上でたくさんのGMSMarkersをプロットしているアプリ。私は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例外とハッシュ関数の戻り値でクラッシュしています。私はゾンビオブジェクトを有効にして、私はマーカーのマップオブジェクトを設定していると私は次のエラーを取得する際のpo marker.objectIDを印刷しようとした:

*** -[CFNumber respondsToSelector:]: message sent to deallocated instance 0x80416470 
0x80416470 

どれヘルプを! TIA

+0

objectIDの代わりに強いを使用します。 –

答えて

2

objectIDプロパティでメモリ管理の問題があります。オブジェクトポインタのプロパティにはassignを使用しないでください。 strongを使用してください。

@property (strong, nonatomic) NSNumber *objectID; 
+0

どうしましたか?ありがとう。これがiPhone 5でしか扱われない理由は何ですか?他のどのデバイスも私をこのミスに導いたことはありません。 –

+1

他のデバイスで動作しているのは、本当に運が良かっただけです。 – rmaddy

関連する問題