总结: 当使用 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