我想存儲我的RTF文本UITextView的NSAttributedString。對於這個在stackoverflow的問題建議,我選擇NSData。問題是應用程序崩潰,而解壓縮和檢索的數據也與保存的NSData不同。存儲和檢索NSAttributedString
說明 DB: 將數據保存到數據庫
在DB我有一個名爲rtfText與數據類型BLOB列 - >(rtfText BLOB) 雖然保存到數據庫,我做這
NSData *data = [NSKeyedArchiver archiveWithRootObject:_myTextView.attributedString];
併發送這樣的數據在查詢
NSString Query = [NSString stringWithFormat:@"Insert into table (rtfText) VALUES \"%@\")",data];
檢索數據從DB
數據被檢索這樣的:
NSData *data = [[NSData alloc] initWithBytes:(sqlite3_column_blob(statement, 18)) length:sqlite3_column_bytes(statement, 18)];
取消存檔:
從從DB檢索到的NSData我取消存檔成NSAttributedString像這
_myTextView.attributedText = [NSKeyedUnarchiver unarchiveObjectWithData:data]; **<- App Crashes at this point giving error**
錯誤: - [__ NSCFData objectForKey:]:無法識別的選擇發送到實例0x15d56e80
我甚至想NSAttributedString保存到NSData的後存檔然後使用NSASCIIStringEncoding轉換成的NSString但DB崩潰然後。我也試着像這樣保存它。首先使用NSKeyedArchiver將NSAttributedString轉換爲NSData,然後使用NSUTF8StringEncoding將其轉換爲NSString,這給了我空字符串。
請注意這一點。
在此先感謝