2014-01-13 53 views
7

我的視圖控制器符合UITextFieldDelegate,但是當我嘗試將我的文本字段的.delegate字段設置爲self時,我收到警告:當我遵守協議時,分配給id <UITextFieldDelegate>的警告

「分配給來自不兼容的類型 'ID' 'AddReviewViewController * const的__strong'」

我的頭文件是這樣的:

#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。我在這裏錯過了很明顯的東西嗎我符合協議....

編輯:感謝您的快速幫助。在我睡眠不足的狀態中,我不斷重讀和發誓,這就是我正在做的,但是,錯字,錯字。我幾分鐘不能標記答案,但問題解決了,謝謝!

回答

24

在你的頭,你有UITextFieldDelegate 然後你聲明UITextView。這兩者之間有很大的區別。

編輯

@interface AddReviewViewController : UIViewController <UITextFieldDelegate> 

@interface AddReviewViewController : UIViewController <UITextViewDelegate> 
3

也許應該在UITextViewDelegate

@interface AddReviewViewController : UIViewController <UITextFieldDelegate> 
@property (nonatomic) int storeID; 
@end 
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

相關問題