无法让 SQLite 显示输出



我对sqlite很陌生,我一直试图让sqlite输出到UIcomponents,但无济于事。我有一种轻推的感觉它的语法。有什么指示吗?提前感谢。SQL 结构:|罗|问题|答案|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];

如您所见,我没有正确对齐 UIComponent。只是想在我将它们安排在适当的位置之前看看它是否有效。我也非常感谢对我处理编码部分的方式的任何批评。我再次感谢您的时间...

我认为

您应该按照 (.m) 文件中的代码修复您的代码

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

将 NSString 格式与 UTF8 结合使用。

最新更新