我在它的最後一部分stucked,請幫我就可以了。
在這個有三個視圖,第一之一,書籍(在的UITableView)名單,第二是章(在的UITableView)和最後一個是對於內容,這是文本格式(在UITextView)。
第二視圖它工作得很好。 問題是,當我在第二個視圖中選擇任何章節時,第三個視圖中的文本視圖不顯示任何內容。但是在輸出中顯示數字序列。
從數據庫中獲取數據並顯示到UITextView中的代碼。
NSMutableString *mStr = [NSMutableString stringWithFormat:@"select content from content where name = \"%@\" and chapterno = %@",chapName,chapNo];
const char *sql =(char *)[mStr UTF8String];
sqlite3_stmt *sqlStmt;
if(sqlite3_prepare(dbContent, sql, -1, &sqlStmt, NULL)!=SQLITE_OK)
{
NSLog(@"prob with prepare statement: %s",sqlite3_errmsg(dbContent));
}
else
{
while (sqlite3_step(sqlStmt)==SQLITE_ROW) {
len = sqlite3_column_bytes(sqlStmt, 0);
NSData *cData = [[NSData alloc]initWithBytes:sqlite3_column_blob(sqlStmt, 0) length:len];
NSString *nstr = [NSString stringWithUTF8String:[cData bytes]];
myTextView.text = nstr;
}
在上述chapName從第一視圖和chapNo來選擇在第二視圖行。
內容表的樣子:
id bookid name chapterno content
1 1 abc 1 BLOB(size:4217)
2 1 abc 2 BLOB(size:3193)
3 1 abc 3 BLOB(size:3501)
O/P進來的數字像這樣的長序列..
<0d0a3120 496e2074 68652062 6567696e 6e696e67 20476f64 20637265 61746564 20746865 20686561 76656e20 616e6420 74686520 65617274 682e0d0a...>
這裏,文本內容我需要顯示在文本視圖。我在這裏錯過了什麼?
感謝您的回覆,我已經在使用此之前嘗試過(NSString * nstr = [NSString stringWithUTF8String:[cData bytes]];)line..Didn't work out。 – mavericks
不是。有顯着差異。如果字符串爲空,則應使用UTF8String。否則,我提到的.Sqlite可能不會終止。 – Vignesh
此處cData包含nos序列<0d0a3120 496e2074 68652062 6567696e 6e696e67 20476f64 20637265 61746564 20746865 20686561 76656e20 616e6420 74686520 65617274 .... ans nStr具有空值.. – mavericks