1

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

@property (readonly) NSInteger tag;

如何在我的子类中将标签属性设置为某个值?我尝试在我的头文件中关注

@property(readwrite, assign) NSInteger tag;

然后在实施中我有

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

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

4

1 回答 1

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

我在自己的小型测试项目中尝试了这一点,并且效果很好。

于 2015-11-24T09:56:20.690 回答