iPhone自带的数据格式

iPhone自带的数据格式,iphone,cocoa-touch,file,packaging,Iphone,Cocoa Touch,File,Packaging,我想为iPhone应用程序创建我自己的数据格式。这些文件的结构应类似于苹果的iWork文件(.pages)。也就是说,我有一个文件夹,其中包含一些文件: The file 'Juicy.fruit' contains: Fruits ---> Apple.xml ---> Banana.xml ---> Pear.xml ---> PreviewPicture.png 这个文件夹“水果”应该放在一个方便的文件“Juicy.fruit”中。压

我想为iPhone应用程序创建我自己的数据格式。这些文件的结构应类似于苹果的iWork文件(.pages)。也就是说,我有一个文件夹,其中包含一些文件:

The file 'Juicy.fruit' contains:
   Fruits
   ---> Apple.xml
   ---> Banana.xml
   ---> Pear.xml
   ---> PreviewPicture.png
这个文件夹“水果”应该放在一个方便的文件“Juicy.fruit”中。压缩是没有必要的。我怎样才能做到这一点?我发现了一些开源ZIP库。不过,我想用iPhone内置的libs(如果可能的话)构建我自己的数据格式

致以最良好的祝愿,
Stefan

好吧,我有三种方式来解读你的问题,以下是我对每种方式的最佳猜测:

  • 您希望您的
    .fruit
    文件通过Safari/SMS/某些网络连接与您的应用程序相关联(即当有人想要下载为您的应用程序制作或由您的应用程序制作的文件时)
  • 在这种情况下,您可以注册应用程序的协议,如下所述:

  • 您希望iPhone将
    .fruit
    文件与您的应用程序全局关联,在这种情况下,您需要查看。基本上,您可以在安装程序的
    info.plst
    文件中设置此关联

  • 您想知道如何从包含文件的文件夹变为扩展名为
    .fruit
    的单个文件(包)

  • 如果是这样的话,有很多选择,我看不出你有什么目的。Microsoft和Adobe都使用标准的zip压缩方法,并使用自己的扩展名(而不是
    .zip
    )。如果您将任何office 2007文档(如
    docx
    或Adobe的实验性
    .pdfxml
    文件)放入存档实用程序(我喜欢7z,但任何一个都可以),您将得到一个包含多个xml文件的文件夹,就像您针对您的情况所描述的那样。(这也是Java的
    jar
    文件类型的工作原理,仅供参考)。所以,除非你有很好的理由避免使用标准压缩方法(我支持gzip),否则我会跟随业界的潮流来做这件事

    我可以肯定地理解在每一个可能的层面上去DIY的冲动,但你基本上是在问(如果是#3)如何创建自己的打包算法,在阅读了一些最基本的压缩方法是如何工作的之后,我就不谈这个了。另外,我真的很怀疑苹果是否已经为大多数人只会使用标准方法的事情建立了库

    最后一点注意:

    如果您真的打算从头开始(仍然建议不要),因为您的文件都是XML,您可以创建一个新的XML文件,作为各种包装,并将每个文件放入该包装文件中。但是,当需要展开时,这确实是多余的,因为每次都必须加载整个文件。但它会是这样的:

    Juicy.fruit --
       <fruit-wrapper>
           <fruit>
              <apple>
                  ... content from apple.xml
              </apple>
           </fruit>
           <fruit>
              <banana>
                  ... content from banana.xml
              </banana>
           </fruit>
           <fruit>
              <pear>
                  ... content from pear.xml
              </pear>
           </fruit>
           <picture>
                  ...URL-encoded binary of preview picture
           </picture>
       </fruit-wrapper>     
    
    多汁的水果--
    (Wap二进制XML)。不确定它是否仍然被认真对待,但如果有一个iPhone库,你应该研究它。

    好的,我有三种方式来阅读你的问题,下面是我对每一种方式的最佳猜测:

  • 您希望您的
    .fruit
    文件通过Safari/SMS/某些网络连接与您的应用程序相关联(即当有人想要下载为您的应用程序制作或由您的应用程序制作的文件时)
  • 在这种情况下,您可以注册应用程序的协议,如下所述:

  • 您希望iPhone将
    .fruit
    文件与您的应用程序全局关联,在这种情况下,您需要查看。基本上,您可以在安装程序的
    info.plst
    文件中设置此关联

  • 您想知道如何从包含文件的文件夹变为扩展名为
    .fruit
    的单个文件(包)

  • 如果是这样的话,有很多选择,我看不出你有什么目的。Microsoft和Adobe都使用标准的zip压缩方法,并使用自己的扩展名(而不是
    .zip
    )。如果您将任何office 2007文档(如
    docx
    或Adobe的实验性
    .pdfxml
    文件)放入存档实用程序(我喜欢7z,但任何一个都可以),您将得到一个包含多个xml文件的文件夹,就像您针对您的情况所描述的那样。(这也是Java的
    jar
    文件类型的工作原理,仅供参考)。所以,除非你有很好的理由避免使用标准压缩方法(我支持gzip),否则我会跟随业界的潮流来做这件事

    我可以肯定地理解在每一个可能的层面上去DIY的冲动,但你基本上是在问(如果是#3)如何创建自己的打包算法,在阅读了一些最基本的压缩方法是如何工作的之后,我就不谈这个了。另外,我真的很怀疑苹果是否已经为大多数人只会使用标准方法的事情建立了库

    最后一点注意:

    如果您真的打算从头开始(仍然建议不要),因为您的文件都是XML,您可以创建一个新的XML文件,作为各种包装,并将每个文件放入该包装文件中。但是,当需要展开时,这确实是多余的,因为每次都必须加载整个文件。但它会是这样的:

    Juicy.fruit --
       <fruit-wrapper>
           <fruit>
              <apple>
                  ... content from apple.xml
              </apple>
           </fruit>
           <fruit>
              <banana>
                  ... content from banana.xml
              </banana>
           </fruit>
           <fruit>
              <pear>
                  ... content from pear.xml
              </pear>
           </fruit>
           <picture>
                  ...URL-encoded binary of preview picture
           </picture>
       </fruit-wrapper>     
    
    多汁的水果--
    (Wap二进制XML)。不确定它是否仍然受到重视,但如果有一个iPhone库,你应该研究它。

    我承认我对非web应用不太了解,但我还是要问——如果打包的文件(即
    .fruit
    )文件只在你创建的应用上起作用,那么为什么你需要构建一种数据格式?应用程序不应该只知道查找文件类型并根据需要处理它吗?或者您想为其他应用程序全局注册文件类型,或者Safari知道在有人下载
    .fruit
    文件时使用您的应用程序?再说一次,我真的很困惑,没有告诉你事情是如何运作的。真的很快,我想