IOS model的getter和setter方法

总结: 当使用 self.str1 = @"xxx";时, 系统自动调用 setter方法
param_str = self.str1; 自动调用getter方法
注意: 只在对象点属性的时候才会调用, 在setter方法内复制必须
str1 = param_str1;     正确
self.str1 = param_str1;  错误 (会无限递归)

  


#import <Foundation/Foundation.h> @interface MyTestModel : NSObject @property (nonatomic, strong) NSString *str1; //- (NSString *)str1; //- (void)setStr1:(NSString *)str1; @end
#import "MyTestModel.h"

@implementation MyTestModel

@synthesize str1;

- (void) setStr1:(NSString *)param_str1
{
    NSLog(@"property str1's set method is automatically invoke when assignment!");
    str1 = param_str1;
}

- (NSString *)str1
{
    NSLog(@"invoke getter");
    return str1;
}
@end

 

posted @ 2014-09-21 20:44  apem  阅读(643)  评论(0编辑  收藏  举报