[英]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)將數據存儲為BLOB
或b)存儲字符串的文本而不是實際的字符串。 B
似乎是一個更好的選擇,因為您將存儲較少的數據,並且如果以后需要該信息以進行調試,則DB的內容將易於閱讀。
因為NSData代表一個編碼的UILabel而不是一個UTF-8編碼的NSString,所以幾乎肯定不能從數據中初始化一個UTF-8字符串。 如果絕對必須將數據存儲為字符串,請嘗試使用某種形式的數據到字符串編碼。 嘗試使用base32或base64。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.