最新のSDKとXCode 4.2を使用してiOS 4アプリケーションを開発しています。ARCを有効にしてプロパティを更新する
プロジェクトでARCを有効にしましたが、以前のプロジェクトをこの機能(ARC)を使用する新しいプロジェクトに移行しようとしています。
問題はセッターの実装から発生します。ここに私のクラスには、(古いバージョン)です:
@interface RouteView : MKAnnotationView
{
/**
*/
MKMapView* _mapView;
...
}
@property (nonatomic, retain) MKMapView* mapView;
とその実装:
@implementation RouteView
@synthesize mapView = _mapView;
-(void) setMapView:(MKMapView*) mapView
{
[_mapView release];
_mapView = [mapView retain];
[self regionChanged];
}
私はsetMapView:
法上の2つの最初の行に2つのコンパイルエラーを取得します。
ARCを有効にしてカスタムセッターメソッドを実行するにはどうすればよいですか?あなただけのARCでこれを行うことができ
「それは自動ガベージコレクションを持っている」これは真実ではありません:
だからあなた
setMapView
方法は次のようになります。ガベージコレクションとはまったく異なる自動参照カウントを持っています。 ARCの挿入は、コンパイル時にあなたのコードに保持され、解放されます。ガベージコレクションは実行時に行われ、オブジェクトグラフでは使用されなくなったエンティティを監視します。それは重要な違いです。 –@JackLawrenceおっと!明確化のためにありがとう、私は私の答えを編集しました。 – johnluttig