클래스 속성이 원자 성인 경우 왜 getter 및 setter를 사용자 지정할 수 없습니까?

샌디 라왓

클래스 속성이 원자 성인 경우 iOS에서 구현의 getter 및 setter를 사용자 정의 할 수없는 이유는 무엇입니까?

@property (atomic, strong) NSArray* myArray;
Rob

실제로 원자 속성에 대한 사용자 지정 getter 및 setter를 구현할 수 있습니다. 그러나 컴파일러가 허용하지 않는 것은 이러한 두 접근 자 메서드 중 하나만 사용자 지정 변환을 구현하고 다른 하나는 구현하지 않고 컴파일러가이를 합성 할 것으로 기대하는 것입니다. 그리고 이것은 의미가 있습니다. 원자 속성의 전체 개념은 속성이 업데이트되는 동시에 속성에 액세스 할 수 없다는 것입니다. 따라서 컴파일러는 접근 자 메서드의 원자 적 특성을 사용자의 것과 조정할 방법이 없기 때문에 다른 하나를 합성하지 않고는 이러한 원자 접근 자 메서드 중 하나를 합성 할 수 없습니다.

말할 필요도없이 atomic속성에 대해 고유 한 접근 자 메서드 쌍을 구현하는 경우 원자 적 동작의 구현을 보장 할 책임이 있음을 인식해야합니다.


나는 토론을 볼 때 걱정 것을,하지만 고백해야 atomic유사한 무언가와 함께 NSArray. atomic키워드를 사용하면 스레드 안전성이 보장 된다는 가정하에 작동하지 않는지 확인하고 싶습니다 . 일반적으로 배열과 같은 객체를 다룰 때 NSArray포인터 검색뿐만 아니라 스레드 안전성을 달성하기 위해 일부 동기화 메커니즘 내에서 해당 객체와의 모든 상호 작용을 래핑해야합니다 . 따라서이 동기화 메커니즘은 일반적으로 기본 접근 자 방법보다 높은 수준으로 구현됩니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

클래스 생성자에서 "이것이 필수"인 이유는 무엇입니까? 왜 지역 변수를 사용할 수 없습니까?

분류에서Dev

사이에 스레드 조인이있는 경우 왜 완화 된 원자 연산을 사용하여 메모리를 동기화 할 수 없습니까?

분류에서Dev

계산 된 변수를 setter 및 getter 모두와 함께 사용하여 수퍼 클래스의 저장된 속성을 재정의 할 수 있습니다.

분류에서Dev

Java에서는 왜 제네릭 클래스에 생성자를 사용할 수 없습니까?

분류에서Dev

우리가 직접 자바 액세스 전용 변수를 setter 메소드를 사용할 수있을 때 왜 getter 메소드를 사용합니까?

분류에서Dev

파이썬 클래스 속성을 생성자의 인수로 사용할 수 없습니까?

분류에서Dev

사전의 키로 클래스를 사용하는 경우 : 키를 결정하는 클래스 속성 / 변수를 지정할 수 있습니까?

분류에서Dev

변수가 정적 인 경우 클래스 생성자에 어떻게 할당 할 수 있습니까?

분류에서Dev

Google Invisible Captcha를 사용할 때 자동 html 양식 유효성 검사 및 필수 속성이 작동하지 않습니다. 왜?

분류에서Dev

Kotlin : IllegalAccessException : BlockJUnit4ClassRunner 클래스가 "private"수정자를 사용하여 Foo 클래스의 구성원에 액세스 할 수 없습니다.

분류에서Dev

속성을 재정의 할 필요없이 슈퍼 클래스의 속성 설정자를 재정의 할 수 있습니까?

분류에서Dev

MaterialUI에서 스타일이 지정된 구성 요소에 사용자 정의 클래스 이름 생성기를 사용할 수 있습니까?

분류에서Dev

C # : getter / setter shortand를 사용할 때 함수 액세스 한정자를 혼합 할 수 있습니까?

분류에서Dev

나는 생성자에서 getter 및 setter를 사용해야합니까?

분류에서Dev

조치 클래스가 struts.xml에 구성된 경우 요청 된 자원을 struts2에서 사용할 수 없습니다.

분류에서Dev

멤버가 사용자 정의 클래스 인 경우 적절한 클래스 정의 및 선언을 어떻게 작성합니까?

분류에서Dev

네임 스페이스가 지정된 클래스 생성자에서 전역 네임 스페이스 함수를 사용할 수 없습니다.

분류에서Dev

사용자 정의 ClassLoader가 종속성을 무시하고 클래스를로드 할 수 있습니까?

분류에서Dev

왜 타입 생성자는 하스켈의 타입 클래스 정의에서 사용할 수 없나요?

분류에서Dev

Objective-C에서 사용자 지정 setter와 사용자 지정 getter를 동시에 구현할 수없는 이유는 무엇입니까?

분류에서Dev

왜 이렇게 두 원자를 비교할 수 없습니까?

분류에서Dev

왜 예외를 생성하지 않습니다 널 원자 클래스에 메소드를 호출합니까?

분류에서Dev

사용자를 생성 할 수 있지만 변경할 수 없습니까?

분류에서Dev

사용자 로그인이 비활성화 된 경우 "이 계정은 현재 사용할 수 없습니다"라는 사용자 지정 메시지

분류에서Dev

이전 및 새 값이 null이 왜 자바는 불 속성 변경할 수 있습니다

분류에서Dev

클래스에 0 인수를 사용하는 생성자가 없습니다.

분류에서Dev

자신의 속성이있는 객체 속성에 getter 및 setter 사용

분류에서Dev

파이썬 데이터 클래스를 사용하여 setter없이 속성 getter를 갖는 파이썬적인 방법은 무엇입니까?

분류에서Dev

Invoke-ASCmd : 인증 실패 : 사용자 인터페이스를 사용할 수없는 경우 사용자 ID 및 비밀번호가 필요합니다.

Related 관련 기사

  1. 1

    클래스 생성자에서 "이것이 필수"인 이유는 무엇입니까? 왜 지역 변수를 사용할 수 없습니까?

  2. 2

    사이에 스레드 조인이있는 경우 왜 완화 된 원자 연산을 사용하여 메모리를 동기화 할 수 없습니까?

  3. 3

    계산 된 변수를 setter 및 getter 모두와 함께 사용하여 수퍼 클래스의 저장된 속성을 재정의 할 수 있습니다.

  4. 4

    Java에서는 왜 제네릭 클래스에 생성자를 사용할 수 없습니까?

  5. 5

    우리가 직접 자바 액세스 전용 변수를 setter 메소드를 사용할 수있을 때 왜 getter 메소드를 사용합니까?

  6. 6

    파이썬 클래스 속성을 생성자의 인수로 사용할 수 없습니까?

  7. 7

    사전의 키로 클래스를 사용하는 경우 : 키를 결정하는 클래스 속성 / 변수를 지정할 수 있습니까?

  8. 8

    변수가 정적 인 경우 클래스 생성자에 어떻게 할당 할 수 있습니까?

  9. 9

    Google Invisible Captcha를 사용할 때 자동 html 양식 유효성 검사 및 필수 속성이 작동하지 않습니다. 왜?

  10. 10

    Kotlin : IllegalAccessException : BlockJUnit4ClassRunner 클래스가 "private"수정자를 사용하여 Foo 클래스의 구성원에 액세스 할 수 없습니다.

  11. 11

    속성을 재정의 할 필요없이 슈퍼 클래스의 속성 설정자를 재정의 할 수 있습니까?

  12. 12

    MaterialUI에서 스타일이 지정된 구성 요소에 사용자 정의 클래스 이름 생성기를 사용할 수 있습니까?

  13. 13

    C # : getter / setter shortand를 사용할 때 함수 액세스 한정자를 혼합 할 수 있습니까?

  14. 14

    나는 생성자에서 getter 및 setter를 사용해야합니까?

  15. 15

    조치 클래스가 struts.xml에 구성된 경우 요청 된 자원을 struts2에서 사용할 수 없습니다.

  16. 16

    멤버가 사용자 정의 클래스 인 경우 적절한 클래스 정의 및 선언을 어떻게 작성합니까?

  17. 17

    네임 스페이스가 지정된 클래스 생성자에서 전역 네임 스페이스 함수를 사용할 수 없습니다.

  18. 18

    사용자 정의 ClassLoader가 종속성을 무시하고 클래스를로드 할 수 있습니까?

  19. 19

    왜 타입 생성자는 하스켈의 타입 클래스 정의에서 사용할 수 없나요?

  20. 20

    Objective-C에서 사용자 지정 setter와 사용자 지정 getter를 동시에 구현할 수없는 이유는 무엇입니까?

  21. 21

    왜 이렇게 두 원자를 비교할 수 없습니까?

  22. 22

    왜 예외를 생성하지 않습니다 널 원자 클래스에 메소드를 호출합니까?

  23. 23

    사용자를 생성 할 수 있지만 변경할 수 없습니까?

  24. 24

    사용자 로그인이 비활성화 된 경우 "이 계정은 현재 사용할 수 없습니다"라는 사용자 지정 메시지

  25. 25

    이전 및 새 값이 null이 왜 자바는 불 속성 변경할 수 있습니다

  26. 26

    클래스에 0 인수를 사용하는 생성자가 없습니다.

  27. 27

    자신의 속성이있는 객체 속성에 getter 및 setter 사용

  28. 28

    파이썬 데이터 클래스를 사용하여 setter없이 속성 getter를 갖는 파이썬적인 방법은 무엇입니까?

  29. 29

    Invoke-ASCmd : 인증 실패 : 사용자 인터페이스를 사용할 수없는 경우 사용자 ID 및 비밀번호가 필요합니다.

뜨겁다태그

보관