我有一个派生自NSView的类。 NSView有一个声明
@property (readonly) NSInteger tag;
如何在我的子类中将tag属性设置为某个值?我试着在我的头文件中跟随
@property(readwrite, assign) NSInteger tag;
然后在实施中我有
@dynamic tag
...
- (void)setTag:(NSInteger)newTag
{
_tag = newTag;
}
这不编译,我得到'使用未声明的标识符:'_ tag'。如何将标记设置为值?
答案 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
我在我自己的小测试项目中尝试了这一点,它工作得非常好。