首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSArray到NSData编码格式

NSArray到NSData编码格式
EN

Stack Overflow用户
提问于 2014-09-02 02:45:05
回答 1查看 2.1K关注 0票数 1

我正在编制一个程序,用于读取手机中的传感器,并将传感器数据保存到核心数据SQLite模型中,并包含与特定会话相关的每组读数。

该程序为用户提供了发送特定会话的.csv文件的选项。

以前从未这样做过,我通过初始化委托和上下文来处理这个问题,并搜索与指定会话相关的实体的核心数据。满足会话属性的实体然后将其数据字段(gps、mag、accel、陀螺仪)读取并放入字符串中。然后将字符串追加到数组中。都是迅速完成的。

在搜索实体并创建数组之后,我尝试创建一个csv文件,以便附加到电子邮件。该文件已成功附加,但我的编码技术提供了附加的数据,并附加到文件中。

我想保存一个文件在电话和电子邮件副本给用户。

在再次转换为NSArray之前,我必须将数组更改为NSData:

代码语言:javascript
复制
    let paths: NSArray = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true);
    let path = paths[0].stringByAppendingPathComponent("SessionData.csv")

    if !NSFileManager.defaultManager().fileExistsAtPath(path)
    {
        NSFileManager.defaultManager().createFileAtPath(path, contents: nil, attributes: nil)
    }
    else
    {
        NSFileManager.defaultManager().createFileAtPath(path, contents: nil, attributes: nil)
    }

    var handle: NSFileHandle = NSFileHandle(forWritingAtPath: path)
    handle.truncateFileAtOffset(handle.seekToEndOfFile())
    var arrayToWriteNS = (arrayToWrite as NSArray)
    var dataNS: NSData = NSKeyedArchiver.archivedDataWithRootObject(arrayToWrite as NSArray)
    handle.writeData(dataNS)

    mc.setSubject(emailTitle)
    mc.addAttachmentData(dataNS, mimeType: "text/csv", fileName: "SessionData.csv")   

以下是预先和附加的数据:

代码语言:javascript
复制
bplist00‘()T$topX$objectsX$versionY$archiver—TrootĨ    
!U$null“
V$classZNS.objectsÄ©ÄÄÄÄÄÄÄÄ    Ä

“数据”

代码语言:javascript
复制
 “"#$'X$classesZ$classname¢%&WNSArrayXNSObjectWNSArray܆_NSKeyedArchiver(25:<IOT[fhrtvxz|~ÄÇÑ·Ø}KÁµÉQV_jmu~Üã*ù 

在与28,000个实体的大数据会话中,可能有750行预先处理的数据。

如能提供任何帮助,将不胜感激。

我对iOS、Obj和just都很陌生,因此我确信有更好的方法可以做到这一点,我只是还没有发现一个更好的方法。

谢谢。

UPDATE:最后只使用NSString数据编码并以增量方式写入我的文件:

代码语言:javascript
复制
handle.truncateFileAtOffset(handle.seekToEndOfFile())
var stringToWriteNS = (stringToWrite as NSString).dataUsingEncoding(NSUTF8StringEncoding)
handle.writeData(stringToWriteNS!)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-02 03:18:19

您不需要NSKeyedArchiver,它用于归档和还原类。

您需要遍历数组,并以您要呈现给用户的格式创建每个项的文本表示形式。

快速搜索CocoaPods可以发现适合您需要生成csv格式数据的几个项目

这一个可能是你所需要的。

csv相当简单,因此通过编写自己的代码将数据格式化为csv是合理的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25615112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档