与类型id <nstextfielddelegate>不兼容

时间:2015-11-28 01:15:38

标签: objective-c macos cocoa

我在旧的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

1 个答案:

答案 0 :(得分:1)

NSTextField已经拥有 delegate属性,并且输入为id<NSTextFieldDelegate>。因此,您的HyperinkTextField是NSTextField的子类,继承此属性,就像错误消息明确告诉您的那样。您无法覆盖此继承的属性,并将其键入id<HyperlinkTextFieldDelegate>,即其他类型