2012-11-04 6 views
-3

가능한 중복 합성 :@property & @


@property @synthesize 나는 누군가가 나에게 설명해주십시오 수 2 방법에 약간 혼란 스러워요?

그들은 무엇을하고, 왜 그냥 사용하는 것보다 낫습니다 - (void) variable; 및 - (void) variable {}?

답변

0

변수에 표준 getter/setter 메서드를 정의하는 것이 더 간편한 방법입니다. 단순한 표준 getter 및 setter 메서드를 반복적으로 작성하면 정말 고통 스러울 수 있기 때문입니다. 그리고 속성은 쉬운 방법을 제공합니다. 메모리 관리 (예 : 강점, 비 원자력 등).

0

합니까 무엇 그들은 각각 속성 접근 방법합니다 (getter 및 setter)를 선언하고 구현합니다. @property이 선언되면 @synthesize은 선언 된 메소드에 대해 자동 생성 구현을 실행하도록 컴파일러에 지시합니다.

왜 그냥 사용하는 것보다 낫습니다 - (void) variable; 및 - (void) variable {}?

더 짧고 간결하며 코드를 읽기 쉽게 만들어주기 때문에. 또한 접근 방법을 많이 쓰는 경우에는 결국 무언가를 놓치 겠지만 신의 사랑 때문에 신비한 세분화 오류가 어디에서 발생했는지 알 수 없습니다. 이것은 선언 된 속성에서 발생하지 않습니다 (그래서 호출됩니다).

하나의 작은 경고는 오래된 Objective-C 컴파일러가 선언 된 속성을 지원하지 않는다는 것입니다. 언젠가 당신은 오래된 컴파일러로 코드를 컴파일 할 필요가있을 것이고이 구문 때문에 불가능할 수도 있습니다. 그러나 다시, 이것은 거의 일어나지 않을 것입니다.