如何从NSUserDefaults归档此Swift词典并通过邮件发送?编码似乎是乱码

时间:2016-11-24 20:20:33

标签: ios swift nsdata mfmailcomposeviewcontroller nskeyedarchiver

我有以下代码将NSUserDefaults转换为NSData,然后使用MFMailComposeViewController的实例发送它:

let defaultsData = NSKeyedArchiver.archivedDataWithRootObject(NSUserDefaults.standardUserDefaults().dictionaryRepresentation())
mailViewController.addAttachmentData(defaultsData, mimeType: "text/txt", fileName: "details.txt")

非常简单的东西,但是当我把它发送出去时,我会得到一个非常乱码的.txt:#/ p>

bplist00‘������òôX$versionX$objectsY$archiverT$top�܆Ø|���ô�ö�õ�ú�ù�û�ü�†�°�¢�£�§�•�¶�ß�®�©�™�´�¨�≠�Æ�Ø�∞�±�≤�≥�¥�µ�∂�∑�∏�π�∫�ª�º�Ω�æ�ø�¿�¡�¬�√�ƒ�≈�∆�«�»�…� �À�Ã�Õ�Œ�œ�–�—�“�”�‘�’�÷�◊�ÿ�Ÿ�⁄�€�‹�›�fi�fl�‡�Ï�Ì�Ó�Ô��Ò�Ú�Û�Ù�˙�˚�¸"#$)*+./367?@ABCDGJVWcfqrstuvwxy|∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€‹›fifl‡·Ìıˆ˜˙¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ�   

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxy|ÇÉÜáäçéëíóU$null”�   �
���R�òWNS.keysZNS.objectsV$classØE�

�������������������

我做错了什么?

1 个答案:

答案 0 :(得分:-1)

这确实是预期的。生成的NSKeyedArchiver的NSData是字典的二进制属性列表(bplist)表示。所以你得到二进制数据。你期望收到什么?