Obj C - UITextViewDelegate不兼容类型警告

时间:2011-04-11 13:45:29

标签: objective-c uitextview

使用journalComment.delegate = self的行警告:从不兼容的类型'JournalEntryViewController *'

分配给'id'

journalComment是一个textView。

我不确定警告的内容,它应该只是说 - 警告:“键盘上的新手,去参加一些课程。”

感谢您的帮助。

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
        // Hide keyboard when done key is pressed

        // define the area and location for the UITextView
        CGRect tfFrame = CGRectMake(0, 0, 320, 460);
        journalComment = [[UITextView alloc] initWithFrame:tfFrame];
        // make sure that it is editable
        journalComment.editable = YES;

        // add the controller as the delegate
        journalComment.delegate = self;

    }
    return self;
}

2 个答案:

答案 0 :(得分:10)

您的课程必须符合UITextViewDelegate协议,因此在您的.h文件中看起来像

@interface JournalEntryViewController : NSViewController <UITextViewDelegate>
{

...

}

然后编译器将知道您的类符合该协议。当然,您仍然需要实现所需的方法。

答案 1 :(得分:3)

您发布示例代码的对象需要实现UITextViewDelegate协议。为此,您的.h文件应以:

开头
@interface MyViewController : UIViewController <UITextViewDelegate>

在.m文件中,您需要实现协议的方法(请参阅Apple Developer Docs)。没有任何要求,但您可能对一些委托回调感兴趣。