Object-C의 특성 -----property

소개:property는 새로운 사전 컴파일 명령과 새로운 속성 액세서리 문법을 조합했습니다.
1. @property는 대상의 속성을 표시합니다.예: @property float smsHandling,어떤 종류의 대상이 플로트 유형의 smsHandling이라는 속성을 가지고 있음을 나타낸다.
property는 자동으로 -setsmsHandling과 -getsmsHandling 두 가지 방법으로 속성을 조작합니다.
2. @synthesize는 이 속성을 만드는 액세서리를 표시한다(Ps: -setsmsHandling과 -getsmsHandling 두 가지 방법은 이 문장이 존재하는 상황에서 컴파일러가 출력하기 시작한다).
3. property 지원점 접근, 예를 들어 (위의 속성을 가진 클래스가 A라고 가정) A.smsHandling = 0.3;
4.property의 확장 기능: (이상에서는property의 기본 사용법을 소개함)
우리는 또 다른 속성을 가진 @property를 생명으로 하여금 특정한 행위가 있기를 바라는 확실한 의사를 나타낼 수 있다.
     @property (copy) NSString * name;//name 이 속성에copy를 추가하는 방법을 사용하면 컴파일러와 클래스 사용자가name 대상이 복사될 것을 알 수 있습니다.
속성에 대한 괄호 안의 확장은 다음과 같습니다.
     
1, Getter=GetterName, setter=setterName, setter와 Getter 설정
방법
2, readwrite, readonly, 액세스 가능 레벨 설정
     
2, assign,setter 방법은 직접 값을 부여하고 어떤retain 조작도 하지 않으며 원 유형과 순환 인용 문제를 해결하기 위해
3,retain,setter 방법은 매개 변수에 대해release 옛 값을 하고retain 새 값을 한다. 모든 실현은 이 순서이다(CC에 관련 자료가 있다)
4,copy,setter 방법으로 Copy 작업을 진행합니다.retain 처리 프로세스와 같이 이전 값release를 먼저 입력한 다음에 새로운 대상을 Copy로 만듭니다.retainCount은 1입니다.이것은 상하문에 대한 의존을 줄이기 위해 도입된 메커니즘이다.
5,nonatomic, 비원자적 접근, 동기화 없음, 다중 스레드 병렬 접근은 성능을 향상시킬 수 있습니다.이 속성을 추가하지 않으면 기본적으로 두 접근 방법이 원자형 사무 접근입니다.자물쇠가 소속 개체에 추가됨
위의 사용 방법:
assign 사용: 기본 데이터 형식(NSInteger, CGFloat)과 C 데이터 형식(int,float,double,char,등)copy 사용: NSStringretain 사용: 다른 NSObject 및 하위 클래스참고:
retain의 실제 구문은 다음과 같습니다.
- (void)setName:(NSString *)newName {
    if (name != newName) {
       [name release];
       name = [newName retain];
       // name’s retain count has been bumped up by 1
    }
}

좋은 웹페이지 즐겨찾기