#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
这两种方式有啥区别呢?
天蓬老师2017-04-24 09:16:09
내 경험상 변수 메모리 연산 방식을 명확하게 구분할 수 있도록 속성을 사용하여 모든 이름을 정의하는 것이 좋습니다(멀티 스레딩은 너무 드물어 무시할 수 있음). 그리고 이것은 전역 변수를 식별하는 가장 쉬운 방법 중 하나입니다. m 파일에서 직접 _name을 사용하면 이것이 전역 변수라는 것을 빠르게 이해할 수 있습니다. 속성을 전역 변수로 사용하는 것은 매우 좋은 습관이라고 생각합니다. 게다가 여기서 @freewolf가 언급한 합성 크기는 실제로 생략할 수 있습니다. 다음은 간단한 setter를 예로 들어 보겠습니다.
으아악 으아악