当我符合协议时,关于分配给id <UITextFieldDelegate>的警告
我的视图控制器符合UITextFieldDelegate,但是当我尝试将我的文本字段的.delegate字段设置为self时,我收到警告:
“从不兼容的types'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;
那是我得到警告的地方。 我已经尝试清理和重build,并重新启动XCode。 我在这里错过了很明显的东西吗 我遵守协议….
编辑:感谢您的快速帮助。 在我睡眠不足的状态下,我不停地重读和发誓,这正是我所做的,但是,错字,错字。 我几分钟不能标记答案,但问题解决了,谢谢!
在你的头部你有UITextFieldDelegate
然后你声明UITextView
。 这两者之间有很大的区别。
编辑
@interface AddReviewViewController : UIViewController <UITextFieldDelegate>
至
@interface AddReviewViewController : UIViewController <UITextViewDelegate>
也许它应该是UITextViewDelegate
在:
@interface AddReviewViewController : UIViewController <UITextFieldDelegate> @property (nonatomic) int storeID; @end
我得到这样的错误,因为这个代码:
@interface PlaceOrderController : UIViewController < UINavigationControllerDelegate, UITextViewDelegate > @property (weak, nonatomic) IBOutlet UITextField *dateForUserDOB;
为了解决这个问题我使用了以下内容
@interface PlaceOrderController : UIViewController < UINavigationControllerDelegate, UITextFieldDelegate > @property (weak, nonatomic) IBOutlet UITextField *dateForUserDOB;
总结:使用TextField而不是TextView