0

私はsqliteにまったく慣れておらず、sqliteをUIcomponentsに出力させようとしていましたが無駄になりました。私はその構文を少しずつ感じています。ポインタはありますか?よろしくお願いします。SQL構造:| ROW | QUESTIONS | ANSWER | CHOICE1 | CHOICE2 | CHOICE3 | CHOICE4 |

.h:

@property (nonatomic) NSInteger *q_num;
@property (nonatomic, copy) NSString *q;
@property (nonatomic, copy) NSString *c1;
@property (nonatomic, copy) NSString *c2;
@property (nonatomic, copy) NSString *c3;
@property (nonatomic, copy) NSString *c4;

.m:

//Reopening path to DB for data acq
[self filePath];
int row = 1;
NSString *queryRow1 = [NSString stringWithFormat: @"SELECT * FROM QUESTIONBANK WHERE ROW = 1", row];
sqlite3_stmt *statement;
if (sqlite3_prepare_v2(db, [queryRow1 UTF8String], -1, &statement, nil) == SQLITE_OK) {
    q_num = (NSInteger *)sqlite3_column_int(statement, 0);
    q = (NSString *)sqlite3_column_text(statement, 1);
    //omit (statement, 2) since it is the answer
    c1 = (NSString *)sqlite3_column_text(statement, 3);
    c2 = (NSString *)sqlite3_column_text(statement, 4);
    c3 = (NSString *)sqlite3_column_text(statement, 5);
    c4 = (NSString *)sqlite3_column_text(statement, 6);
}

//Question no.1
//Label for no.1
scrollViewFrame = CGRectMake(10, 50, 20, 20);
UILabel *no1 = [[UILabel alloc]initWithFrame:scrollViewFrame];
no1.backgroundColor = [UIColor clearColor];
no1.font = [UIFont fontWithName:@"Helvetica" size:21];
NSString *questionNumber = [NSString stringWithFormat:@"%d", q_num];
no1.text = questionNumber;
[scrollView addSubview:no1];
[no1 release];

scrollViewFrame = CGRectMake(10, 50, 290, 20);
UILabel *question = [[UILabel alloc]initWithFrame:scrollViewFrame];
question.backgroundColor = [UIColor clearColor];
question.font = [UIFont fontWithName:@"Helvetica" size:21];
question.text = q;
[scrollView addSubview:question];
[question release];

scrollViewFrame = CGRectMake(10, 50, 290, 20);
UILabel *choice1 = [[UILabel alloc]initWithFrame:scrollViewFrame];
choice1.backgroundColor = [UIColor clearColor];
choice1.font = [UIFont fontWithName:@"Helvetica" size:21];
choice1.text = c1;
[scrollView addSubview:choice1];
[choice1 release];

scrollViewFrame = CGRectMake(10, 50, 290, 20);
UILabel *choice2 = [[UILabel alloc]initWithFrame:scrollViewFrame];
choice2.backgroundColor = [UIColor clearColor];
choice2.font = [UIFont fontWithName:@"Helvetica" size:21];
choice2.text = c2;
[scrollView addSubview:choice2];
[choice2 release];

scrollViewFrame = CGRectMake(10, 50, 290, 20);
UILabel *choice3 = [[UILabel alloc]initWithFrame:scrollViewFrame];
choice3.backgroundColor = [UIColor clearColor];
choice3.font = [UIFont fontWithName:@"Helvetica" size:21];
choice3.text = c3;
[scrollView addSubview:choice3];
[choice3 release];

scrollViewFrame = CGRectMake(10, 50, 290, 20);
UILabel *choice4 = [[UILabel alloc]initWithFrame:scrollViewFrame];
choice4.backgroundColor = [UIColor clearColor];
choice4.font = [UIFont fontWithName:@"Helvetica" size:21];
choice4.text = c4;
[scrollView addSubview:choice4];
[choice4 release];

ご覧のとおり、UIComponentsを適切に配置していません。適切な場所に配置する前に、それが機能するかどうかを確認したかっただけです。また、コーディングの部分へのアプローチについても批判をいただければ幸いです。もう一度、お時間をいただきありがとうございます...

4

1 に答える 1

0

(.m)ファイルの私のコードに従ってコードを修正する必要があると思います

q_num = sqlite3_column_int(statement,0);
q = [NSString stringWithUTF8String:(char *)sqlite3_column_text (statement,1)];

UTF8 で NSString 形式を使用します。

于 2012-04-29T17:30:16.827 に答える