차례:
비디오: Learning iOS: Create your own app with Objective-C! by Tianyu Liu 2024
선언 할 때 특정 속성 속성을 설정할 수 있습니다 iOS 앱의 속성 프로그래밍 할 때 설정할 수있는 속성에 대해 자세히 알아보십시오.
세터 의미 / 소유권
이 속성은 인스턴스 변수 저장소를 관리하는 방법을 지정합니다.
-
strong (ARC 이전에 사용 된 retain과 유사)는이 속성이 가리키는 객체 범위에있는 동안 (또는 nil로 설정 될 때까지) 유지됩니다. 이것은 기본값입니다.
-
weak (ARC 이전에 사용 된 assign과 유사 함)는 간단한 할당을 사용하는 접근자를 만듭니다. 일반적으로이 속성은 NSInteger 및 CGRect와 같은 스칼라 유형 또는 소유하지 않은 객체 (예: 대리인)에 대한 (참조 계산 된 환경에서) - 유지주기 문제를 방지하기 위해 사용됩니다.
-
copy는 객체의 복사본을 할당에 사용하도록 지정합니다. 이전 값에는 릴리스 메시지가 전송됩니다.
복사는 copy 메소드를 호출하여 수행됩니다. 이 속성은 NSCopying 프로토콜을 구현해야하는 객체 유형에만 유효합니다.
객체 속성의 경우 앞서 나열한 유형 중 하나를 명시 적으로 지정해야합니다. 그렇지 않으면 컴파일러 경고가 표시됩니다. 따라서 원하는 메모리 관리 동작을 생각하고 동작을 명시 적으로 입력해야합니다.
쓰기 가능
다음 속성은 속성에 연관된 액세스 액세서가 있는지 여부를 지정합니다. 그것들은 상호 배타적이다.
-
readwrite는 속성이 읽기 / 쓰기로 처리되어야 함을 나타냅니다. 이 속성이 기본값입니다. getter 및 setter 메서드는 자동으로 합성됩니다.
-
읽기 전용은 속성이 읽기 전용임을 나타냅니다. 게터 메소드 만 합성됩니다. 자신의 액세서를 구현하는 경우 getter 메서드 만 필요합니다. 도트 구문을 사용하여 값을 지정하려고하면 컴파일러 오류가 발생합니다.
접근 자 메소드 이름
속성과 연관된 getter 및 setter 메소드의 기본 이름은 각각 PropertyName 및 setPropertyName:이라는 것을 기억할 것입니다. 예를 들어, 속성 트립의 경우 접근자는 trip 및 setTrip:입니다. 그러나 사용자 정의 이름을 대신 지정할 수 있습니다. 둘 다 선택적이며 읽기 전용 및 setter =의 경우를 제외하고 다른 속성과 함께 나타날 수 있습니다.
-
getter = getterName은 속성에 대한 접근 허용 이름을 지정합니다. getter는 속성 유형과 일치하는 유형을 반환하고 매개 변수를 가져와야합니다.
-
setter = setterName은 속성에 대해 설정된 접근 자의 이름을 지정합니다. setter 메서드는 속성 형식과 일치하는 형식의 단일 매개 변수를 가져와야하며 void를 반환해야합니다.
일반적으로 키 - 값 코딩을 준수하는 접근 자 메서드 이름을 지정해야합니다. getter 데코레이터를 사용하는 일반적인 이유는 부울 값에 대한 isPropertyName 규칙을 따르는 것입니다.
이름 배열이 정렬되는 방식을 추적하는 데 사용되는 alphabetized라는 부울 속성이있는 경우 기본 getter는 알파벳순으로 정렬됩니다. 명명 규칙을 사용하면 isAlphabetized라는 접근 자 메서드를 만들 수 있습니다.이 메서드는 조금 더 명확합니다.
Atomicity
이 속성을 사용하여 접근 자 메서드가 절대 아님을 지정할 수 있습니다. (키워드는 원자를 의미하지 않습니다.) 이것은 동시성 문제와 관련이 있습니다. 비 원자를 지정하면 객체 속성에 대한 합성 접근자는 값을 직접 반환합니다. 그렇지 않으면 객체 속성에 대한 합성 된 get 접근자가 잠금을 사용하고 반환 된 값을 유지하고 자동 회수합니다.