최신 SDK 및 XCode 4.2를 사용하여 iOS 4 응용 프로그램을 개발 중입니다.ARC를 사용하여 속성 업데이트
내 프로젝트에서 ARC를 활성화했으며 이전 프로젝트를이 기능 (ARC)을 사용하는 새 프로젝트로 마이그레이션하려고합니다.
문제는 setter 구현에서 비롯됩니다. 여기 내 클래스 (이전 버전)입니다 :
@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:
방법에있는 두 개의 첫 번째 줄에 두 개의 컴파일러 오류를 얻을.
ARC를 사용하도록 설정 한 사용자 정의 설정 메소드는 어떻게 수행합니까?
"는 자동 가비지 컬렉션을 가지고"이것은 사실이 아니다 :
그래서
setMapView
방법은 다음과 같을 것이다. 자동 참조 카운팅은 가비지 수집과 완전히 다릅니다. ARC 삽입은 컴파일 타임에 코드를 유지하고 해제합니다. 가비지 콜렉션은 런타임에 발생하며 더 이상 사용되지 않는 엔티티에 대한 오브젝트 그래프를 감시합니다. 그것은 중요한 차이입니다. –@ JackLawrence 와우! 명확히 해 주셔서 감사 드리며 제 대답을 편집했습니다. – johnluttig