成员变量访问赋值的两种方式:
一.get set方式
@interface Person : NSObject{
//成员变量
NSString* _name;
}
-(void)setName:(NSString*)name;
-(NSString*)name;
@end
#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
Person* p1 = [Person new];
[p1 name];
[p1 setName:@"dancer"];
}
return 0;
}
二.属性方式
1.@property(strong, nonatomic)
@interface Person : NSObject{
//成员变量
NSString* _name;
}
//属性
@property(strong, nonatomic)NSString* name;
@end
#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
Person* p1 = [Person new];
p1.name = @"dancer";
NSString* name = p1.name;
NSLog(@"name = %@",name);
}
return 0;
}
2.声明property声明synthesize
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface Person : NSObject{
NSInteger _age;
}
//属性
@property(assign, nonatomic)NSInteger age;
@end
NS_ASSUME_NONNULL_END
#import "Person.h"
@implementation Person
@synthesize age;
@end
3.省略成员变量的属性方式
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface Person : NSObject{
NSInteger _age;
}
//属性
@property(strong, nonatomic)NSString* name;
@property(assign, nonatomic)NSInteger age;
//没有对应的成员变量可以自动生成一个私有的成员变量 _属性名
@property(assign, nonatomic)NSInteger weight;
@end
NS_ASSUME_NONNULL_END
使用synthesize修改自动生成的成员变量的名字
#import "Person.h"
@implementation Person
@synthesize age;
//使用synthesize修改自动生成的成员变量的名字
@synthesize weight = _myWeight;
@end
本文介绍了Objective-C中两种成员变量访问和赋值的方式:get/set方法和属性(@property)。通过示例代码展示了如何使用get/set方法设置和获取_name属性,以及如何通过属性直接赋值和读取。此外,还讲解了属性的声明、@synthesize关键字的使用,以及如何自定义生成的成员变量名称。
475

被折叠的 条评论
为什么被折叠?



