【问题标题】:Saving, reading, exchanging own file format?保存、读取、交换自己的文件格式?
【发布时间】:2011-09-12 19:44:51
【问题描述】:

对于将四个字符串保存为应用程序可以读取并可以共享的自己的文件格式有什么建议吗?

在我的应用程序中,您将能够在某些框中输入一些文本,并且该应用程序会显示一个带有背景图像和这些字符串的视图。现在,我已经可以将其保存为图片,但我实际上想将其保存为自己的文件格式,以便您可以保存不同的文件,之后也可以修改这些文件,甚至可以通过电子邮件交换并从另一部 iphone 打开应用程序。

现在,我编写了用于访问应用程序的文档文件夹以及保存和删除的代码。问题是,我不知道如何将这些字符串存储在文件中(可能在 xml 中?)然后从我的应用程序中轻松读取它们。

对于交换部分,我发现该链接确实是一个不错的功能:http://iosdevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html

解析 xml 似乎并不难(以前从未做过):http://ipad.about.com/od/iPad-App-Dev/a/How-To-Parse-Xml-Files-In-Xcode-Objective-C.htm

【问题讨论】:

    标签: iphone xml file-io document file-format


    【解决方案1】:

    如果只是一点点信息,那么将数据存储在文件中的最简单方法是使用 plist - 这里有一个很好的教程 - http://www.icodeblog.com/2009/02/14/loading-data-from-plist-files/

    【讨论】:

    • pList 可以交换吗?不过感谢您的回答!
    • 这只是一个 XML 文件 - 随心所欲地交换它!
    【解决方案2】:

    除了 plist,您还可以执行以下方法: 1)最简单 - 在您的文档目录中打开一个文件,写入 4 个字符串(使用任何有用的分隔符/字符串标记结尾 - 回车?)并每次覆盖它们。 (即它是你的文件,你可以随意格式化它) 2) 稍微难一些 - 使用 Apple 的 NSArchive 来打包和解包字符串。 3) 可能的矫枉过正 - 将它们直接存储在 SQLite 数据库中 4) 主要的矫枉过正 - 将它们存储在 CoreData 中。

    当然,“矫枉过正”选项还为您提供了额外的功能,如果您的应用功能超出您所概述的范围,这些功能可能会很有用。

    通过共享,我认为简单的复制和粘贴可能就足够了,但也可以通过电子邮件发送,或者触发另一个应用程序的 URL 方案以使其打开并将字符串作为 URL 的一部分发送。您必须知道其他应用能够将您的字符串解释为 URL 的一部分,因此您可能必须自己编写。

    【讨论】:

    • “文件”是什么意思? xml 有我自己的结尾,比如 stuff.myformat 而不是 stuff.xml?
    • 不,我的意思是你的字符串结束标记。如果您只是在文件中写入 4 个字符串的内容,那么除非您标记它们,否则无法知道一个结束和另一个开始的位置。传统上,C 字符串使用空字符 \0 来标记它们,但这些对于 NSStrings 不是自动的。这是假设您没有使用 xml,因为听起来您只想编写 4 个字符串并稍后再读取它们。
    • 我可以定义类型吗?就像它的 xml 但文件结尾是 stuff.bla?事情是我需要通过电子邮件共享文件。非常感谢!
    • 问题是:你和什么分享它?好的编程会说使用描述文件内数据的适当扩展名,即如果它是 XML 文件,则使用 .xml。但如果它是一个只有 4 个字符串的文本文件,它可能是 .txt。关键是,它是你的文件,你可以用它做你想做的事,考虑到你需要通过电子邮件与其他程序共享的限制,谁必须知道它是什么。
    【解决方案3】:

    好吧,伙计们,我在 NSString 文档中发现了这个非常好的方法:

    –writeToFile:atomically:encoding:error:

    我想我要用 /n 分隔字符串并将它们保存到 .txt 中。之后当我要读取文件时,我正在获取字符串,将其划分为子字符串。我猜这样就可以了。

    最后一个问题:是否可以替换我的文件的内容,这样我就不需要在每次想要更改某些内容时创建一个新文件?

    谢谢!

    【讨论】:

    • 我认为 writeToFile 会为内容添加一些内容。显然,它取代了内容。我只是会去。
    猜你喜欢
    • 2021-02-11
    • 2011-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-09
    • 1970-01-01
    相关资源
    最近更新 更多