setter, getter, @property , @synthesize

一,单纯的set get,

.h文件

@interface Person : NSObject
{
    NSString *_name;
}

-(void)setName:(NSString *)name;
-(NSString *)getName;

@end

.m文件

-(void)setName:(NSString *)name
{
    _name = name;
}

-(NSString *)getName
{
    return _name;
}

调用

    Person *person = [[Person alloc]init];
    [person setName:@"guligei"];
    NSLog(@"
name:%@",[person getName]);

打印输出:

2014-07-29 18:49:05.399 MS[8864:60b] 
name:guligei

二,使用@property,@synthesize

.h

@interface Person : NSObject

@property(nonatomic,strong) NSString *name;

@end

.m

@implementation Person

    @synthesize name;

@end

调用

 Person *person = [[Person alloc]init];
    person.name = @"guligei";
    NSLog(@"
name:%@",person.name);

打印输出

2014-07-29 18:51:07.267 MS[8884:60b] 
name:guligei

说明:在写model的时候,会有很多属性 需要实现set,get方法,写起来枯燥,而 Xcode提供了@property和@synthesize属性,编译器会自动帮你加上 getter 和 setter 方法的实现。 PS: 在Xcode4.5及以后的版本中,可以省略@synthesize ,默认会去访问 _name(本例中使用)  这个成员变量,如果找不到 _name这个成员变量,会自动生成一个叫做 _name的私有成员变量。

原文地址:https://www.cnblogs.com/guligei/p/3876297.html