【问题标题】:Objective-c: Initialize NSMutableArray with NSString that is plist structureObjective-c:用 NSString 初始化 NSMutableArray,它是 plist 结构
【发布时间】:2011-07-28 13:24:56
【问题描述】:

如果我有一个以 plist 结构形式从 Web 服务返回的 NSString,我如何使用这个 NSString 初始化一个 NSMutableArray。我想知道 NSString 是否有类似于 initWithContentsOfFile 的方法。

我的第一个想法是将 NSString 保存到文件中,然后使用 initWithContentsOfFile;但我试图避免先保存到文件。好像应该有更简单的方法。

【问题讨论】:

    标签: objective-c ios4


    【解决方案1】:

    未经测试,应该像这样工作:

    NSData *data = [myString dataUsingEncoding:NSUTF8StringEncoding];
    NSMuableArray *array = [NSPropertyListSerialization
         propertyListWithData:data
                      options:NSPropertyListMutableContainers
                       format:NSPropertyListXMLFormat_v1_0
                        error:NULL];
    

    【讨论】:

      【解决方案2】:

      请参阅属性列表编程指南“Reading and Writing Property-List Data”。它介绍了如何将NSData 转换为属性列表。如果您已经有来自网络的NSData,请不要将其转换为NSString。如果您只有NSString,请使用dataUsingEncoding: 将其转换为NSData

      【讨论】:

        【解决方案3】:

        查看-propertyList-mutableCopy 方法的文档。

        【讨论】:

          【解决方案4】:

          您可以使用NSXMLParser 解析 XML(这就是 plist 的含义)并将其转换为字典(并从那里检索数组)

          【讨论】:

          • 有比这更方便的方法,幸运的是;-)
          • 使用NSPropertyListSerialization 做得更好,它已经完成了你所描述的所有事情。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-07-16
          • 1970-01-01
          相关资源
          最近更新 更多