찾다

 >  Q&A  >  본문

在objective-c中atomic和nonatomic有什么区别?retain有什么用?

比如下面的代码

@property(nonatomic, retain) UITextField *userName;
@property(atomic, retain) UITextField *userName;

他们有啥区别,retain在这里起啥作用

高洛峰高洛峰2769일 전459

모든 응답(4)나는 대답할 것이다

  • ringa_lee

    ringa_lee2017-04-21 10:59:07

    retain은 속성의 참조 횟수에 1을 더하는 것입니다
    여기서 유지는 이 설정자가 매개변수의 참조 카운트에 1을 추가한다는 것을 의미합니다. 예:

    으아아아

    이때 uName의 참조 횟수가 1 증가합니다.
    그러나 SDK 5.0 이상에서는 자동 애플리케이션 계산을 의미하는 ARC를 지원하므로 속성을 정의할 때 유지하고 복사할 필요가 없으며 대신 Strong을 사용하여 ARC에서 관리하도록 합니다.
    참고용으로 Apple Core를 제공하는 기사: http://pingguohe.net/2011/08/05/llvm3...

    회신하다
    0
  • 黄舟

    黄舟2017-04-21 10:59:07

    Atomic은 스레드로부터 안전하며 NonAtomic보다 성능이 낮습니다. noatomic은 스레드 안전성을 보장하지 않습니다.

    회신하다
    0
  • ringa_lee

    ringa_lee2017-04-21 10:59:07

    Atomic은 스레드 안전성을 의미하는 것이 아니라 동일한 개체에 대한 설정 및 가져오기 작업이 순차적으로 실행된다는 의미입니다.

    회신하다
    0
  • 阿神

    阿神2017-04-21 10:59:07

    iOS 원자성과 비원자성의 차이점

    회신하다
    0
  • 취소회신하다