【问题标题】:Using Plists in other environments在其他环境中使用 Plists
【发布时间】:2012-11-13 05:23:33
【问题描述】:

Pists 是否仅限在 OSX 和 iOS 系统上使用?

我正在考虑我的应用程序的架构,将数据导入 iPhone 应用程序的众多方法之一是通过 Plist,您也可以保存到它。

现在,如果说 plist 能够以原始格式从应用程序中导出,那么它可以通过 Android 或 Windows Phone 格式访问吗?还是需要转换?

我的理解是 Plist 是一种 XML 格式,对吗? 我可能是错的,但这是我在查看文件时可以组成的。

干杯

【问题讨论】:

    标签: ios xml cross-platform plist


    【解决方案1】:

    Property List Programming Guide 中所述,属性列表是以下任何一种:

    • 一个字符串
    • 一团二进制数据
    • 日期
    • 一个整数
    • 浮点数
    • 布尔值
    • 属性列表数组
    • 键是字符串,值是属性列表的字典

    序列化属性列表有两种常用方法。

    一种是您知道的 XML 格式。这种格式在plist(5) man page 上有所记录。

    另一种是二进制格式,它更紧凑,编码和解码速度更快。它在任何地方都没有正式记录,但其格式在 CFBinaryPlist.c 的 cmets 和代码中进行了描述,该代码包含在 Apple 的 Core Foundation 框架的开源版本中。

    如果您的数据不使用日期或二进制 blob,您可能会发现使用 JSON 比使用 XML plist 更容易。从 iOS 5 和 OS X 10.7 (Lion) 开始,Apple 提供了 NSJSONSerialization class 来序列化和反序列化 JSON,并且有适用于几乎所有平台和语言的 JSON 库。

    【讨论】:

    • 我会调查的,谢谢:-) 该应用程序将使用日期和位置坐标,所以我不确定 JSON 方式是否可行。它还在我的学习清单上:-)
    • 请注意,如果您需要将日期存储在 JSON 中,您可以将日期表示为字符串或数字。您只需要自己进行转换即可。 JSON 和属性列表都不支持将位置坐标作为原生类型。
    • 如果您不介意,再问一个问题 - XML 是否已经出路?我对此不太乐观,而且 JSON 似乎越来越受欢迎。这是你个人的喜好,还是只是要走的路?
    • 我不会说它正在完全消失。对于许多用例来说,这只是矫枉过正,但在 JSON 出现之前,还没有一个流行的、更简单的替代方案。这是许多博客文章的主题,所以当您想拖延时,只需在 Google 中输入“xml 糟透了”或“json 糟透了”。 :)
    • 太酷了:-) Jut 给了我另一个研究 JSON 的理由 - 感谢您的建议和帮助:-)
    【解决方案2】:

    你是对的。 Plist实际上是一个xml格式的文件,带有plist header,可以被任何xml parser解析。由于xml 可以在各种环境中使用,plist 可以做同样的事情。只需将其后缀更改为xml,您就可以为所欲为。

    【讨论】:

    • 啊,所以我需要解析成一个普通的 xml 文件,然后再返回,如果它回到 iOS 应用程序的位置??
    • @JeffKranenburg 您不需要将parse 发送到 xml。它一个xml。只需将其后缀更改为xml,您会发现它仍然可以被iOS识别为plist,并且可以被其他平台识别。
    • 我刚刚重新阅读了您的回答,发现我的评论是基于我认为您写的内容:-) 感谢您的帮助:-)
    猜你喜欢
    • 2016-10-18
    • 2013-05-16
    • 1970-01-01
    • 2018-04-12
    • 1970-01-01
    • 2020-01-14
    • 2019-05-15
    • 1970-01-01
    • 2019-09-02
    相关资源
    最近更新 更多