2011-08-23 4 views
9

Doop처럼 인스턴트 변수 (iVar)를 선언하고 인터페이스 .h 파일에서 @property를 잠시 동안 선언했습니다.Automatic Reference Counting (ARC)에서 iVar 및 @property (nonatomic, retain)와 @synthesize를 계속 사용해야합니까?

@interface MainGameViewController : UIViewController { 
    UserFactorsViewController *userFactorsViewController; 
    UITableView *myTableView; 
} 
@property (nonatomic, retain) UserFactorsViewController *userFactorsViewController; 
@property (nonatomic, retain) IBOutlet UITableView *myTableView; 

Automatic Reference Counting에서 iVar를 제거하고 @property를 모두 사용해야합니까? 재산에 "보유"라는 단어가 있어야하나요? iOS 4.3 용으로 배포하는 경우 ARC를 사용해야합니까?

답변

10

컴파일러가 포함시키지 않으면 컴파일러에서 ivars를 추가하지만 많은 사람들이 코드를 좀 더 쉽게 작성하도록 (많은 책 제작자도) 선언합니다. 읽기 (ivar과 속성을 쉽게 구분할 수 있음).

지금 속성을 만들 때 Apple은 객체 그래프를 생각해보고 싶어하므로 retain 및 release 대신 "strong"및 "weak"속성 속성에 대해 조사하십시오.

또한 iOS 4는 ARC의 대상으로 설정되므로 확인해야합니다. 하지만 iOS 3.0을 지원하기를 원한다면 이전과 같이 수동으로 보유 및 릴리스를 관리해야한다고 생각합니다.

+0

감사합니다. 그러나 ARC 하에서 그것을하는 "올바른"방법은 무엇입니까? 나는 단지 재산을 가지고 나머지를 돌보아 종합해야합니까? 그냥 모든 강요 개체 변수에 대한 속성 (비 원자)를 넣어? – Ben

+2

'@property (nonatomic, strong) UserFactorsViewController * userFactorsViewController; ' '@property (비 원자력, 강함) IBOutlet UITableView * myTableView;' – 5StringRyan

+0

한스 고맙습니다. 고맙습니다. – Ben

관련 문제