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;

米:

//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 回答