簡體   English   中英

如何將NSData保存到數據庫

[英]How can I save NSData to my database

我有一個UILabel對象

UILabel *label1 = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];
label1.text = @"LABEL AREA";

我想將其保存在我的databse(sqlite)中。

我的想法是使用以下方法將該對象轉換為NSData

[NSKeyedArchiver archivedDataWithRootObject:label1];               //step1

並將此NSData轉換為NSString(步驟2),然后將該NSString保存到數據庫(步驟3)。

當我需要UILabel時。 我可以從數據庫中獲取NSString,將其轉換為NSData,然后使用

[NSKeyedUnarchiver unarchiveObjectWithData:];

得到我的UILabel。

但是我在“第2步”中遇到了問題。 當我使用

NSString *strWithEncode = [[NSString alloc] initWithData:dataRaw encoding:NSUTF8StringEncoding];

我得到一個空對象。 我不知道原因 為什么?

非常感謝!

您可以a)將數據存儲為BLOBb)存儲字符串的文本而不是實際的字符串。 B似乎是一個更好的選擇,因為您將存儲較少的數據,並且如果以后需要該信息以進行調試,則DB的內容將易於閱讀。

因為NSData代表一個編碼的UILabel而不是一個UTF-8編碼的NSString,所以幾乎肯定不能從數據中初始化一個UTF-8字符串。 如果絕對必須將數據存儲為字符串,請嘗試使用某種形式的數據到字符串編碼。 嘗試使用base32或base64。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM