主要从用途进行比较
成员变量在使用时.h中是在NSObject后打上{},但如若是要在外部访问就要写set 和 get方法,并且要在.m
中去实现。
而属性变量直接在NSObject 后写@poperty( ,)dddd,dddd;
所以使用@property是很高效的,看下面对应代码:
在.h中
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface Bread : NSObject{
NSString *brandB;
NSString *flavor;
}
-(void)setBrandB:(NSString *)abrandB;
-(void)setFlavor:(NSString *)aflavor;
-(NSString *)getBrandB;
-(NSString *)getFlavor;
@end
NS_ASSUME_NONNULL_END
在.m中
#import “Bread.h”
@implementation Bread
-
(void)setBrandB:(NSString *)abrandB{
brandB = abrandB;
} -
(void)setFlavor:(NSString *)aflavor{
flavor = aflavor;
} -
(NSString *)getBrandB{
return brandB;
} -
(NSString *)getFlavor{
return flavor;
}
@end
在.h中
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface Bread : NSObject
@property (nonatomic,strong) NSString *brand;
@property (nonatomic,strong) NSString *flavor;
@end
NS_ASSUME_NONNULL_END
在这个.m中是没有内容的
可以发现成员变量如果加上get 和set 方法是可以与属性变量转换的