Cocoa 来自sqlite select的文本未在UI中格式化
我在将从sqlite检索到的数据显示到UITextView时遇到问题。 我的问题是\n字符只被读取,而不被应用Cocoa 来自sqlite select的文本未在UI中格式化,cocoa,sqlite,text-formatting,Cocoa,Sqlite,Text Formatting,我在将从sqlite检索到的数据显示到UITextView时遇到问题。 我的问题是\n字符只被读取,而不被应用 - (IBAction)cerca:(id)sender { NSString *nome; NSString *perche; NSString *precauzioni; const char *dbpath = [percorso UTF8String]; sqlite3_stmt *statement; if (sqlite3_open(dbpath, &fa
- (IBAction)cerca:(id)sender {
NSString *nome;
NSString *perche;
NSString *precauzioni;
const char *dbpath = [percorso UTF8String];
sqlite3_stmt *statement;
if (sqlite3_open(dbpath, &farmaciDB) == SQLITE_OK)
{
NSString *querySQL = [NSString stringWithFormat: @"SELECT * FROM farmaci WHERE nome=\"%@\"", stringa.text];
NSLog(@"Query: %@", querySQL);
const char *query_stmt = [querySQL UTF8String];
if (sqlite3_prepare_v2(farmaciDB, query_stmt, -1, &statement, NULL) == SQLITE_OK)
{
if (sqlite3_step(statement) == SQLITE_ROW)
{
nomeEtichetta.text=@"Nome";
nome = [[NSString alloc] initWithUTF8String:(const char *) sqlite3_column_text(statement, 0)];
nomeText.text = nome;
CGRect frameNome = nomeText.frame;
frameNome.size.height = nomeText.contentSize.height;
nomeText.frame = frameNome;
percheEtichetta.text=@"Dettagio 1";
perche = [[NSString alloc] initWithUTF8String:(const char *) sqlite3_column_text(statement, 1)];
//NSString* esc1 = [perche stringByReplacingOccurrencesOfString:@"\\r" withString:@"\\n"];
percheText.text = perche;
precauzioniEtichetta.text=@"Dettaglio 2";
precauzioni = [[NSString alloc] initWithUTF8String:(const char *) sqlite3_column_text(statement, 2)];
precauzioniText.text = precauzioni;
} else {
NSLog(@"Error");
}
sqlite3_finalize(statement);
} else
{
NSLog(@"could not prepare statemnt: %s\n", sqlite3_errmsg(farmaciDB) );
}
sqlite3_close(farmaciDB);
}
}
结果是:
Dato1:descripione1\n数据2:descripione2\n数据3:descripione3\n
虽然我想:
Dato1: Descrizione1
Dato2: Descrizione2
Dato3: Descrizione3
....
有什么方法可以做到这一点吗?当您将换行符插入SQLite数据库时,它可能会被转义。
所以您的“\n”最终变成“\\n”。
如果您可以控制数据的插入方式,则可以在那里进行修复 否则,您可以将转义的换行符替换为“\n”:
[yourString stringByReplacingOccurrencesOfString:@"\\n" withString:@"\n"];
这不是一个SQLite问题,而是一个UI问题。所以我加了一个标签。如果不是正确的iOS库,请将其更改。我将检索到的数据视为word1\nword2\n。您认为它可以读作\\n吗?我试试这个。到目前为止,我通过创建一个html字符串并显示在uiwebview中解决了这个问题。但很奇怪,这是使用SQLite工具查看的唯一方法。通过终端中的sqlite3或,。。。