我的视图控制器符合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。我错过了一些明显的东西吗?我符合协议......
编辑:感谢您的快速帮助。在我睡眠不足的状态下,我不停地重新阅读并发誓这就是我正在做的事情,但是,是的,错字。几分钟后我无法给出答案,但问题解决了,谢谢!
答案 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