2015-11-24 37 views
1

我有一個派生自NSView的類。 NSView有一個聲明在子類上設置NSView只讀屬性標記

@property (readonly) NSInteger tag; 

如何在我的子類中設置標籤屬性爲某個值?我試着在實施我的頭文件

@property(readwrite, assign) NSInteger tag; 

那麼下面我有

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

這並不編譯,我得到「未聲明的標識符的使用:‘_tag’。我怎樣才能將標籤設置爲一個值?

回答

0

我想你打的問題是,_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 

我想這一點在我自己的小測試項目中,它工作得很好。