有没有办法定义一个setter方法,该方法将在设置如下属性时运行:
我想打电话
object.something = 0;
同时在对象类中我希望实现像
这样的东西- (void)setSomething:(NSInteger)something{
self.something = something;
// some other work too
}
答案 0 :(得分:3)
你想要的是财产。 你在类@interface中定义属性,如:
@interface MyClass()
@property (strong, nonatomic) SomeClass *object;
@end
它会自动为它创建ivar _object,setter和getter。 您可以覆盖访问者方法。但是如果你覆盖setter和getter,你需要合成属性,如:
@implementation MyClass
@synthesize object = _object;
//setter
- (void)setObject:(SomeClass *)object
{
_object = object;
}
//getter
- (SomeClass *)object
{
return _object;
}
//class implementation
@end
答案 1 :(得分:0)
你可以这样做:
@property (nonatomic, weak, setter = setSomething:) UIImageView *photoImageView;
无论如何,setSomething:是名为something的属性的默认方法。你只需要用_something替换self.something,如评论中所指出的那样。