在子类上设置NSView readonly-property标记

时间:2015-11-24 07:50:05

标签: macos nsview readonly-attribute

我有一个派生自NSView的类。 NSView有一个声明

@property (readonly) NSInteger tag;

如何在我的子类中将tag属性设置为某个值?我试着在我的头文件中跟随

@property(readwrite, assign) NSInteger tag;

然后在实施中我有

@dynamic tag
...
- (void)setTag:(NSInteger)newTag
{
    _tag = newTag;
}

这不编译,我得到'使用未声明的标识符:'_ tag'。如何将标记设置为值?

1 个答案:

答案 0 :(得分:1)

我认为你遇到的问题是_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

我在我自己的小测试项目中尝试了这一点,它工作得非常好。