繁体   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