2011-08-09 5 views
2

私はモーダルビューコントローラのためのviewDidLoadで呼んでいるMkMapViewのインスタンスを持っている:MkMapView

mapView = [[MKMapView alloc] init]; 
mapView.showsUserLocation = YES; 
mapView.delegate = self; 

私はちょうど私がそれに対してReverseGeocoderを呼び出すと場所を得ることができますので、それを作成しています(目印)。ビューに保持され、ビューが初めて表示されたときに正常に機能します。私は、UITableViewのさまざまな項目から呼び出されたビューをモーダルで再利用します。最初に呼び出された後、後続の呼び出しは機能しません。私は私の頭を傷つけていて、リリースプールに何かがあるかどうか疑問に思います。ビューはviewDidUnloadを呼び出すと

、私はnilにデリゲートを設定しています:

self.mapView.delegate = nil; 
self.reverseGeocoder.delegate = nil; 

任意の考えや私が欠けている何か?

答えて

0

initメソッドでこのオブジェクトを作成し、ビューロード時に存在するかどうかを心配するのではなく、deallocでこのオブジェクトを作成することを検討します。画面に表示しているかどうかにかかわらず、initメソッドに割り当ててから、選択した場合はviewDidLoadにビューを追加するだけです。

+0

これは良い点です。私はそのショットを出した。私はまた、MKMapKitがリークすることがあるので、それをアプリケーションデリゲートに割り当ててコピーしようとしました。同じ結果です。私はいくつかのアイディアを持っています:@property(非原子的、代入)MKMapView * mapView; – indigosplinter

+0

解決方法:iOS 4.3以降、MapViewをリリースする前にMapViewを終了する必要があります。私はself.mapview = nilを追加しました。リリースが呼び出される前に、うまくいきました。 – indigosplinter