我在旧的OSX应用程序上收到新的警告。我使用的是OSX 10.10,我不太确定问题出在哪里。有人可以帮忙吗?
实际警告是属性类型'id与从NSTextField继承的类型ID不兼容
#import <Cocoa/Cocoa.h>
#import "HyperlinkTextFieldDelegate.h"
@interface HyperlinkTextField : NSTextField <NSTextFieldDelegate>
@property (assign) id <HyperlinkTextFieldDelegate> delegate; <--- warning showing up here
@end
主要实施是
@interface HyperlinkTextField ()
@property (nonatomic, readonly) NSArray *hyperlinkInfos;
@property (nonatomic, readonly) NSTextView *textView;
- (void)_resetHyperlinkCursorRects;
@end
#define kHyperlinkInfoCharacterRangeKey @"range"
#define kHyperlinkInfoURLKey @"url"
#define kHyperlinkInfoRectKey @"rect"
@implementation HyperlinkTextField
@synthesize delegate;
委托文件是
#import <Foundation/Foundation.h>
@protocol HyperlinkTextFieldDelegate <NSObject>
- (void) barLinkClicked: (id) sender;
@end
答案 0 :(得分:1)
NSTextField已经拥有 delegate
属性,并且输入为id<NSTextFieldDelegate>
。因此,您的HyperinkTextField是NSTextField的子类,继承此属性,就像错误消息明确告诉您的那样。您无法覆盖此继承的属性,并将其键入id<HyperlinkTextFieldDelegate>
,即其他类型。