0

BAD_EXCESS シグナルを与えるプログラムをテーブルにリロードしようとしている間。

以下のコードで。

-(void)textFieldDidEndEditing:(UITextField *)textField {
    NSLog(@"%d",textField.tag);
    if (textField.tag == 2) {
            IntelligentPillBoxAppDelegate *appdelegate = (IntelligentPillBoxAppDelegate *)[[UIApplication sharedApplication]delegate];
            appdelegate.strip1_detail = [pillboxDb get_detail_for_din:value];

            [table reloadData];
    }
    [textField resignFirstResponder];
}

+(NSMutableArray*)get_detail_for_din:(int) din{
NSArray *arrDocPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *strDestPath = [NSString stringWithFormat:@"%@/samplepillbox1.sqlite",[arrDocPath objectAtIndex:0]];

//IntelligentPillBoxAppDelegate *appdelegate = (IntelligentPillBoxAppDelegate *)[[UIApplication sharedApplication]delegate];
//appdelegate.strip1_detail = [[NSMutableArray alloc]init];
NSMutableArray *strip1_detail = [[NSMutableArray alloc]init];
sqlite3 *db;
if(sqlite3_open([strDestPath UTF8String], &db)==SQLITE_OK)

{

    NSString *query = [NSString stringWithFormat:@"select * from maintable_master where din =%d ",din];

    void* v;
    char* err_msg;
    sqlite3_stmt *studentStmt;

    if(sqlite3_prepare_v2(db, [query UTF8String], -1, &studentStmt, &err_msg)==SQLITE_OK)
    {
        while (sqlite3_step(studentStmt)==SQLITE_ROW) {

            int din = sqlite3_column_int(studentStmt, 0);
            NSString *brandname = [NSString stringWithUTF8String: sqlite3_column_text(studentStmt, 1)];
            NSString *fullname = [NSString stringWithUTF8String: sqlite3_column_text(studentStmt, 2)];
            NSString *strength = [NSString stringWithUTF8String: sqlite3_column_text(studentStmt, 3)];
            NSString *medicationtype =[NSString stringWithUTF8String: sqlite3_column_text(studentStmt, 4)];
            NSString *presciptionid= [NSString stringWithUTF8String: sqlite3_column_text(studentStmt, 5)];
            //float marks = sqlite3_column_double(studentStmt, 2);

            //pillbox *st = [[pillbox alloc]init];
            //st.Din = sno;
            //st.Name = sname;

            //NSLog(@"%@",st);

            Strip_items *si = [[Strip_items alloc]init];
            si.Din = din;
            si.BrandName = brandname;
            si.FullName = fullname;
            si.Strength = strength;
            si.MedicationType = medicationtype;
            si.PresciptionID = presciptionid; 
            NSLog(@"%@",si.BrandName);
            NSLog(@"%d",si.Din);
            NSLog(@"%@",si.FullName);
            NSLog(@"%@",si.Strength);
            NSLog(@"%@",si.MedicationType);
            NSLog(@"%@",si.PresciptionID);



            [strip1_detail addObject:si];
        }

    }

}
return strip1_detail;}
4

3 に答える 3

1

ゾンビ オブジェクトを有効にすると、発生したエラーが表示されます。

製品に移動>スキームの編集>ゾンビオブジェクトの有効化

于 2012-05-22T08:28:22.253 に答える
1

すべての変数を定義していないようです。

valueが定義されている場所とその値を確認してください。

また、最初にテキスト フィールドのレスポンダを辞任してから、テーブル ビューリロードする必要があるかもしれません。コードによっては、辞任したファーストレスポンダーのテキスト フィールドが、テーブル ビューのリロード後に存在しなくなる場合があります。

于 2012-05-22T08:35:47.050 に答える
0

この行で BAD_EXCESS を取得しています...詳細については、IntelligentPillBoxAppDelegateクラスの郵便番号を投稿してください

appdelegate.strip1_detail = [pillboxDb get_detail_for_din:value];
于 2012-05-22T08:46:45.883 に答える