Object-C의 특성 -----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
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Java 다중 스레드를 순차적으로 실행하는 몇 가지 방법 요약Java 다중 스레드를 순차적으로 실행하는 몇 가지 방법 요약 동료는 무심결에 이 문제를 제기하고 두 가지 방법을 직접 실천했다.물론 더 좋은 방법이 있을 거야. 방법 1 이런 방법은 비교적 흔히 볼 수 있는 해결 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.