0

私はiOSの初心者です私の活動の1つで、検索バー付きのカスタムピッカービューを作成しました.....実際には、カスタムピッカービューと検索バーにYHCPickerクラスを使用しており、これをここのTextFieldコードに適用しています.....

 UITextField* StateId;

 StateId=[[UITextField alloc]initWithFrame:CGRectMake(150,540,150,30)];
 StateId.font        = [UIFont boldSystemFontOfSize:12.0];
 StateId.borderStyle = UITextBorderStyleLine;

 StateId.delegate = self;
 StateId.tag      = 4;
 [scrollview addSubview:StateId];

そして、このテキストフィールドにこのデリゲートを使用しています....

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
    if (textField.tag==4)
    {
        View_StateID = [[NSMutable Array]allocinitWithArray:@"Delhi", @"Rajasthan"......, nil];
        NSLog(@"dict is %@",View_StateID);

        PickerView* objYHCPickerView = [[PickerView alloc] initWithFrame:CGRectMake(0, 0, 320, 480) ];

        objYHCPickerView.delegate = self;
        [self.view addSubview:objYHCPickerView];
        [objYHCPickerView showPicker:View_StateID];
    }
}

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
     [textField resignFirstResponder];
     return YES;
} 

次に、YHCPickerView でメソッド ShowPicker を呼び出します。このピッカーをビューに検索バーとともに表示します...画像のように ここに画像の説明を入力

この画像では、最初に検索バーで検索し、目的の状態を正常に取得して完了または検索ボタン (キーボードから) をクリックし、StateID テキストフィールドで値を取得しますが、テキストフィールドをもう一度タップすると、私の画像と同様にタップします検索バーで、このようなエラーが発生します....

 -[CALayer keyboardWillShowNotification:]: unrecognized selector sent to instance 0xaad8950

だから私は何の問題かわからない....だからこの問題を解決してください...

4

1 に答える 1

0

このようなエラーは、オブジェクトが適切に保持されていないことが原因で発生する可能性があります。

  1. オブジェクトがリリースされ、解放されます。
  2. そのメモリは、ランダムな他のオブジェクトに再利用されます。
  3. 次に、元のオブジェクトでセレクターが呼び出されると -> ブーム。

@properties確認すべきことの 1 つは、クラス内のオブジェクトを保持するすべてのオブジェクトが でstrongあり、そうでないかどうかassignです。

また、例外ブレークポイントを設定することも賢明です

最後に、このポインターがどのオブジェクト0xaad8950に属しているかを調べてみてください。アプリがクラッシュする前にブレークポイントをどんどん配置して、オブジェクトのアドレスを調べます。

幸運を!

于 2013-08-24T14:15:29.647 に答える