当我遵守协议时,关于分配给 id<UITextFieldDelegate> 的警告
Posted
技术标签:
【中文标题】当我遵守协议时,关于分配给 id<UITextFieldDelegate> 的警告【英文标题】:Warning about assigning to id<UITextFieldDelegate> when I'm conforming to the protocol 【发布时间】:2014-01-13 08:26:42 【问题描述】:我的视图控制器符合 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。我在这里遗漏了一些明显的东西吗?我遵守协议....
编辑:感谢您的快速帮助。在我睡眠不足的状态下,我不断地重新阅读东西并发誓这就是我正在做的事情,但是是的,错字。几分钟后我无法标记答案,但问题已解决,谢谢!
【问题讨论】:
【参考方案1】:在您的标题中,您有 UITextFieldDelegate
然后你声明UITextView
。这两者之间有很大的不同。
编辑
@interface AddReviewViewController : UIViewController <UITextFieldDelegate>
到
@interface AddReviewViewController : UIViewController <UITextViewDelegate>
【讨论】:
【参考方案2】:也许应该是UITextViewDelegate
in :
@interface AddReviewViewController : UIViewController <UITextFieldDelegate>
@property (nonatomic) int storeID;
@end
【讨论】:
【参考方案3】:由于这段代码,我收到了这样的错误:
@interface PlaceOrderController : UIViewController < UINavigationControllerDelegate, UITextViewDelegate >
@property (weak, nonatomic) IBOutlet UITextField *dateForUserDOB;
为了解决这个问题,我使用了以下方法:
@interface PlaceOrderController : UIViewController < UINavigationControllerDelegate, UITextFieldDelegate >
@property (weak, nonatomic) IBOutlet UITextField *dateForUserDOB;
总结:使用 TextField 而不是 TextView
【讨论】:
以上是关于当我遵守协议时,关于分配给 id<UITextFieldDelegate> 的警告的主要内容,如果未能解决你的问题,请参考以下文章
当我尝试将 Toggle 的输出分配给旧变量时,它说: Binding<Bool> is not convertible to <Bool>