2010-07-26 5 views
3

질문에 불만이 많습니다 만 누군가가 그것에 대해 좋은 점을 알았을 수도 있습니다. 그래서 기본적으로 당신이 접근-방법이 당신의 목표 - C 클래스의 바르를 원한다면 당신은 그것의 dealloc 방법 3 회Objective-C 속성이 왜 불편합니까?

SomeClass* _ivar; 
@property (nonatomic,retain/assign/copy) SomeClass* ivar; 
@synthesize ivar = _ivar; 

어쩌면 4 시간을 언급해야한다. 접근 방식은 자바 스타일의 주석처럼 될 것입니다 경우에 따라서는 더 편리되지 않을 것 - 한 곳에서 실제 바르 선언하기 전에, 뭔가 같은 :

@property (nonatomic,retain,synthesize = ivar,dealloc) SomeClass* _ivar; 

이 또한 접근 방법 및 할당 해제를 생성합니다 -에게 말하고 Dealloc 메소드에서 ivar을 dealloc하십시오.

+2

맞습니다. 문제가 아니라 불만입니다. – Caleb

답변

6

실제로 ivar을 선언 할 필요가 없습니다. 단지 ivar을 선언 할 경우 합성 할 수 있습니다. 당신이 합성한다 이름 바르 - (새 엑스 코드 버전에서

@interface MyClass : NSObject 
{ 
} 

@property(copy) NSString *name; 

@end 

... 
@synthesize name; 

아마 4.0 (기존에 지원되지는 실행 - 시간이 비록 겉으로 중복 구문의 이유 때문에 하나의 기존 플랫폼과의 호환성을 위해입니다)) 당신은 @synthesize도 사용할 필요가 없다. 속성은 기본적으로 합성 될 것이다. 당신이 보는대로

그래서 목표 - C는 당신의 소원 :)

+0

하, 고마워, 알았어 :) 나는 이것을 점검 할 것이다. – justadreamer

0

엑스 코드 4가 자동으로 불행하게도 속성을 합성하지 않습니다를 충족하기 위해 개발하고 있습니다. 그러나 ARC (자동 참조 계산)를 사용하면 더 이상 dealloc 및 인스턴스 변수에 대해 걱정할 필요가 없습니다.

관련 문제