찾다

 >  Q&A  >  본문

objective-c - OC 直接使用@property就能定义属性了吗?

#import <Foundation/Foundation.h>

@interface Person : NSObject


@property  NSString * name;


@end

这样就直接能使用p.name了。
好像不需要如下定义:

#import <Foundation/Foundation.h>

@interface Person : NSObject{
NSString* _name;

}


@property  NSString * name;


@end

这两种方式有啥区别呢?

ringa_leeringa_lee2766일 전449

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

  • 天蓬老师

    天蓬老师2017-04-24 09:16:09

    내 경험상 변수 메모리 연산 방식을 명확하게 구분할 수 있도록 속성을 사용하여 모든 이름을 정의하는 것이 좋습니다(멀티 스레딩은 너무 드물어 무시할 수 있음). 그리고 이것은 전역 변수를 식별하는 가장 쉬운 방법 중 하나입니다. m 파일에서 직접 _name을 사용하면 이것이 전역 변수라는 것을 빠르게 이해할 수 있습니다. 속성을 전역 변수로 사용하는 것은 매우 좋은 습관이라고 생각합니다. 게다가 여기서 @freewolf가 언급한 합성 크기는 실제로 생략할 수 있습니다. 다음은 간단한 setter를 예로 들어 보겠습니다.

    으아악 으아악

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-24 09:16:09

    으아아아

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