关于在符合协议的情况下分配给id <uitextfielddelegate>的警告</uitextfielddelegate>

时间:2014-01-13 08:26:43

标签: ios objective-c uitextfield uitextfielddelegate

我的视图控制器符合UITextFieldDelegate,但是当我尝试将文本字段的.delegate字段设置为self时,我收到警告:

  

“从不兼容的类型'AddReviewViewController * const __strong'”分配给'id'

我的头文件是这样的:

#import <UIKit/UIKit.h>

@interface AddReviewViewController : UIViewController <UITextFieldDelegate>
@property (nonatomic) int storeID;

@end

正如您所看到的,我声明它符合协议。在.m文件中,我有这个:

@property (strong, nonatomic) IBOutlet UITextView *reviewTextView;

在“@interface AddReviewViewController()”

部分

然后,在viewDidLoad中我做:

_reviewTextView.delegate = self;

这就是我收到警告的地方。我已经尝试过清理和重建,并重新启动XCode。我错过了一些明显的东西吗?我符合协议......

编辑:感谢您的快速帮助。在我睡眠不足的状态下,我不停地重新阅读并发誓这就是我正在做的事情,但是,是的,错字。几分钟后我无法给出答案,但问题解决了,谢谢!

3 个答案:

答案 0 :(得分:28)

在标题中,您有UITextFieldDelegate 然后你宣布UITextView。这两者之间有很大的不同。

编辑

@interface AddReviewViewController : UIViewController <UITextFieldDelegate>

@interface AddReviewViewController : UIViewController <UITextViewDelegate>

答案 1 :(得分:3)

也许它应该是UITextViewDelegate

@interface AddReviewViewController : UIViewController <UITextFieldDelegate>
@property (nonatomic) int storeID;
@end

答案 2 :(得分:0)

由于此代码,我收到了这样的错误:

@interface PlaceOrderController : UIViewController <     UINavigationControllerDelegate, UITextViewDelegate >

@property (weak, nonatomic) IBOutlet UITextField *dateForUserDOB;

为了解决这个问题,我使用了以下内容:

@interface PlaceOrderController : UIViewController < UINavigationControllerDelegate, UITextFieldDelegate >

@property (weak, nonatomic) IBOutlet UITextField *dateForUserDOB;

摘要:使用TextField而不是TextView