1

私は学習のためだけに簡単な iOS アプリを作成します。私の場合は を使用する必要がありUIDatePicker、ユーザーが日付を変更した後、この日付を に書き込む必要がありUITextFieldます。コードは次のとおりです。

.h ファイル

@interface ExpenseViewController: UIViewController<UITextFieldDelegate>

@property (strong,nonatomic) IBOutlet UITextField *editTextDate;

- (void) updateTextFieldDate:(UIDatePicker *)pickerL;

@end

.m

@implementation ExpenseViewController

@synthesize ediTextDate;

- (void) viewDidLoad
{
    [super viewDidLoad]
    UIDatePicker *datePicker;
    datePicker = [[UIDatePicker alloc]init];
    [datePicker setDate:[NSDate date]];
    [datePicker setDatePickerMode:UIDatePickerModeDate];
    [datePicker removeTarget:self action:nil forControlEvents:UIControlEventValueChanged];
    [datePicker addTarget:self action:@selector(updateTextFieldDate:)     forControlEvents:UIControlEventValueChanged];
    [editTextDate setInputView:datePicker];

}

- (void) updateTextFieldDate:(UIDatePicker *)pickerL{
    UIDatePicker *picker=(UIDatePicker*)self.editTextdate.inputView;
    editTextDate.text=[NSString stringWithFormat:@"%@",picker.date];
}
@end

しかし、私はこのエラーが発生しています:

ExpenseViewController updateTextFieldDate:]:unrecognized selector sent to instance 0x8d395f0

誰でも私を助けることができますか?

ありがとう。

4

2 に答える 2

2

あなたのコードは私のシステムで正常に動作しますが、@selector(updateTextFieldDate:) でメソッド名を間違えるとまったく同じエラーが発生します。

ばかげた提案ですが、ここで示したものにタイプミスがなくても、コードにタイプミスがある可能性はありますか? 合成のタイプミスにより、コピーして貼り付けるのではなく、ここにクラスを入力したように見えるため、xcode バージョンの @selector 部分にタイプミスがある可能性がありますか?

于 2013-05-09T18:55:41.530 に答える
1

これは、editTextDate合成している textfield プロパティが間違っているためediTextDate( tが欠落していることを意味します)、** editTextDate** に置き換えます。

コードを置き換えます

    UIDatePicker *picker=(UIDatePicker*)self.editTextdate.inputView; // wrong editTextdate , it is editTextDate

これとともに :

UIDatePicker *picker=(UIDatePicker*)self.editTextDate.inputView;

その後、コードは正しく機能します。

お役に立てば幸いです。

于 2013-05-09T17:52:08.487 に答える