我有以下代码将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�
�������������������
我做错了什么?
答案 0 :(得分:-1)
这确实是预期的。生成的NSKeyedArchiver的NSData是字典的二进制属性列表(bplist
)表示。所以你得到二进制数据。你期望收到什么?