在子类上设置 NSView readonly-属性 标签
Setting NSView readonly-property tag on subclass
我有一个从 NSView 派生的 class。 NSView 有声明
@property (readonly) NSInteger tag;
如何在我的 subclass 中将标签 属性 设置为某个值?我尝试在我的头文件中进行跟踪
@property(readwrite, assign) NSInteger tag;
然后在实现中我有
@dynamic tag
...
- (void)setTag:(NSInteger)newTag
{
_tag = newTag;
}
这无法编译,我得到“使用未声明的标识符:‘_tag’”。如何将标签设置为值?
我认为您遇到的问题是 _tag
在您尝试设置它的上下文中不存在,但是如果您像这样使用 @synthesize
:
#import <Cocoa/Cocoa.h>
@interface SOView : NSView
@property (readwrite) NSInteger tag;
@end
@implementation SOView
@synthesize tag = _tag;
- (void)awakeFromNib
{
self.tag = 25;
}
@end
我在我自己的小测试项目中尝试了这个,它运行得非常好。
我有一个从 NSView 派生的 class。 NSView 有声明
@property (readonly) NSInteger tag;
如何在我的 subclass 中将标签 属性 设置为某个值?我尝试在我的头文件中进行跟踪
@property(readwrite, assign) NSInteger tag;
然后在实现中我有
@dynamic tag
...
- (void)setTag:(NSInteger)newTag
{
_tag = newTag;
}
这无法编译,我得到“使用未声明的标识符:‘_tag’”。如何将标签设置为值?
我认为您遇到的问题是 _tag
在您尝试设置它的上下文中不存在,但是如果您像这样使用 @synthesize
:
#import <Cocoa/Cocoa.h>
@interface SOView : NSView
@property (readwrite) NSInteger tag;
@end
@implementation SOView
@synthesize tag = _tag;
- (void)awakeFromNib
{
self.tag = 25;
}
@end
我在我自己的小测试项目中尝试了这个,它运行得非常好。