Ios 在属性集上定义setter方法
有没有一种方法可以定义一个setter方法,该方法将在设置如下属性时运行:Ios 在属性集上定义setter方法,ios,objective-c,xcode,Ios,Objective C,Xcode,有没有一种方法可以定义一个setter方法,该方法将在设置如下属性时运行: @implementation MyClass @synthesize object = _object; //setter - (void)setObject:(SomeClass *)object { _object = object; } //getter - (SomeClass *)object { return _object; } //class implementation @end 我想打
@implementation MyClass
@synthesize object = _object;
//setter
- (void)setObject:(SomeClass *)object
{
_object = object;
}
//getter
- (SomeClass *)object
{
return _object;
}
//class implementation
@end
我想打电话
object.something = 0;
同时,在对象类中,我想实现如下功能
- (void)setSomething:(NSInteger)something{
self.something = something;
// some other work too
}
您可以这样做:
@property (nonatomic, weak, setter = setSomething:) UIImageView *photoImageView;
无论如何,setSomething:是名为something的属性的默认方法。您只需将self.something替换为_something,如评论中所述。您可以这样做:
@property (nonatomic, weak, setter = setSomething:) UIImageView *photoImageView;
无论如何,setSomething:是名为something的属性的默认方法。您只需将self.something替换为_something,如评论中所述。您可以这样做:
@property (nonatomic, weak, setter = setSomething:) UIImageView *photoImageView;
无论如何,setSomething:是名为something的属性的默认方法。您只需将self.something替换为_something,如评论中所述。您可以这样做:
@property (nonatomic, weak, setter = setSomething:) UIImageView *photoImageView;
无论如何,setSomething:是名为something的属性的默认方法。您只需将self.something替换为_something,正如注释中所指出的。您需要的是所谓的属性。 在类@interface中定义属性,如下所示:
@interface MyClass()
@property (strong, nonatomic) SomeClass *object;
@end
它将自动为它创建ivar_对象、setter和getter。
您可以重写访问器方法。但如果同时重写setter和getter,则需要合成如下属性:
@implementation MyClass
@synthesize object = _object;
//setter
- (void)setObject:(SomeClass *)object
{
_object = object;
}
//getter
- (SomeClass *)object
{
return _object;
}
//class implementation
@end
你想要的东西叫做财产。 在类@interface中定义属性,如下所示:
@interface MyClass()
@property (strong, nonatomic) SomeClass *object;
@end
它将自动为它创建ivar_对象、setter和getter。
您可以重写访问器方法。但如果同时重写setter和getter,则需要合成如下属性:
@implementation MyClass
@synthesize object = _object;
//setter
- (void)setObject:(SomeClass *)object
{
_object = object;
}
//getter
- (SomeClass *)object
{
return _object;
}
//class implementation
@end
你想要的东西叫做财产。 在类@interface中定义属性,如下所示:
@interface MyClass()
@property (strong, nonatomic) SomeClass *object;
@end
它将自动为它创建ivar_对象、setter和getter。
您可以重写访问器方法。但如果同时重写setter和getter,则需要合成如下属性:
@implementation MyClass
@synthesize object = _object;
//setter
- (void)setObject:(SomeClass *)object
{
_object = object;
}
//getter
- (SomeClass *)object
{
return _object;
}
//class implementation
@end
你想要的东西叫做财产。 在类@interface中定义属性,如下所示:
@interface MyClass()
@property (strong, nonatomic) SomeClass *object;
@end
它将自动为它创建ivar_对象、setter和getter。
您可以重写访问器方法。但如果同时重写setter和getter,则需要合成如下属性:
@implementation MyClass
@synthesize object = _object;
//setter
- (void)setObject:(SomeClass *)object
{
_object = object;
}
//getter
- (SomeClass *)object
{
return _object;
}
//class implementation
@end
你似乎拥有它,除了它是
\u something=something代码>。你似乎拥有它,除非它是\u something=something代码>。你似乎拥有它,除非它是\u something=something代码>。你似乎拥有它,除非它是\u something=something代码>@特洛伊木马,如果我理解正确,如果您覆盖两个访问器,则不会创建实例变量。好的,如果您尝试不合成属性并重写set和get,那么在类实现中使用_objectivar将导致编译时间error@trojanfoe请注意,我已经添加了。这就是你不需要合成的结果。如果您不重写这两个访问器方法,则不需要合成属性:Hmmm,有趣。我收回我的评论。我想我总是在重写两个访问器时提供我自己的实例变量,这导致了我的混淆。@特洛伊敌人,如果我理解正确,如果您重写两个访问器,则不会创建实例变量。好的,如果您尝试不合成属性并重写set和get,那么在类实现中使用_objectivar将导致编译时间error@trojanfoe请注意,我已经添加了。这就是你不需要合成的结果。如果您不重写这两个访问器方法,则不需要合成属性:Hmmm,有趣。我收回我的评论。我想我总是在重写两个访问器时提供我自己的实例变量,这导致了我的混淆。@特洛伊敌人,如果我理解正确,如果您重写两个访问器,则不会创建实例变量。好的,如果您尝试不合成属性并重写set和get,那么在类实现中使用_objectivar将导致编译时间error@trojanfoe请注意,我已经添加了。这就是你不需要合成的结果。如果您不重写这两个访问器方法,则不需要合成属性:Hmmm,有趣。我收回我的评论。我想我总是在重写两个访问器时提供我自己的实例变量,这导致了我的混淆。@特洛伊敌人,如果我理解正确,如果您重写两个访问器,则不会创建实例变量。好的,如果您尝试不合成属性并重写set和get,那么在类实现中使用_objectivar将导致编译时间error@trojanfoe请注意,我已经添加了。这就是你不需要合成的结果。如果您不重写这两个访问器方法,则不需要合成属性:Hmmm,有趣。我收回我的评论。我想我总是在重写两个访问器时提供自己的实例变量,这导致了我的混淆。