当前位置: 首页 > 面试题库 >

如何在Swift中将plist作为字典?

狄宜然
2023-03-14
问题内容

我在玩苹果的新 Swift 编程语言,遇到了一些问题…

当前,我正在尝试读取plist文件,在Objective-C中,我将执行以下操作以将内容作为NSDictionary获取:

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Config" ofType:@"plist"];
NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:filePath];

如何在Swift中将plist作为字典?

我假设我可以通过以下方式获取plist的路径:

let path = NSBundle.mainBundle().pathForResource("Config", ofType: "plist")

当这可行时(如果正确的话):如何将内容作为字典?

还有一个更笼统的问题:

是否可以使用默认的 NS ** 类?我想是…还是我错过了什么?据我所知,默认框架 **NS 类仍然有效并且可以使用吗?


问题答案:

Swift 3.0中, 从Plist读取。

func readPropertyList() {
        var propertyListFormat =  PropertyListSerialization.PropertyListFormat.xml //Format of the Property List.
        var plistData: [String: AnyObject] = [:] //Our data
        let plistPath: String? = Bundle.main.path(forResource: "data", ofType: "plist")! //the path of the data
        let plistXML = FileManager.default.contents(atPath: plistPath!)!
        do {//convert the data to a dictionary and handle errors.
            plistData = try PropertyListSerialization.propertyList(from: plistXML, options: .mutableContainersAndLeaves, format: &propertyListFormat) as! [String:AnyObject]

        } catch {
            print("Error reading plist: \(error), format: \(propertyListFormat)")
        }
    }

阅读更多 如何在SWIFT中使用属性列表(.PLIST)。



 类似资料:
  • 我在玩苹果新的Swift编程语言,遇到了一些问题...

  • 问题内容: 我正在尝试将数据快速保存到plist文件中,但是读取plist时保存的数据没有显示出来。这是我正在使用的代码。 编辑:我听说做到这一点的最佳方法是写入documents目录,所以我的问题是我应该如何写入该目录中的文件? 问题答案: 显然该文件不在可写位置,因此我在documents目录中创建了该文件。 然后,必须从文档目录中读取它。

  • 问题内容: 我在这里经历了十分钟的挣扎和失败,我屈服了。我需要在Swift中将Int转换为Character并无法解决。 题 如何在Swift中将( 整数 )( 铸造 )转换为( 字符 )? 说明性问题/任务挑战 生成一个for循环,该循环打印字母“ A”至“ Z”,例如: 问题答案: 您不能将整数直接转换为实例,但是可以将整数从转换为并再次返回:

  • 问题内容: 我想将字符串转换为Base64。我在几个地方都找到了答案,但是在Swift中它不再起作用了。我正在使用Xcode 6.2。我相信答案可能适用于以前的Xcode版本,而不适用于Xcode 6.2。 有人可以指导我在Xcode 6.2中执行此操作吗? 我发现的答案是这样,但是在我的Xcode版本中不起作用: 参考:http : //iosdevelopertips.com/swift-co

  • 问题内容: 我正在尝试将(Swift字典)转换为,以供以后在产生字符串的JSON库上使用 但不起作用 所有这些示例都不起作用。它们产生以下错误: 正确的做法是什么? 更新: 有效的代码 问题答案: 您必须像这样强制转换: 否则,在ex的方法中使用Swift字典和NSDictionary时,其处理方式几乎相同: 将完全正常工作。 更新后 如果将Dictionary值类型更改为非可选的String,则

  • 问题内容: 在Objective-C中,我知道如何传递as参数: 但是在Swift中没有更多类型了。 如何在不知道是哪个的情况下将协议作为参数传递? 问题答案: 在您的评论之一中,您说: “我想创建一个方法,该方法返回实现所需协议的类类型的数组。” 您是否尝试过以下方法: 然后使用上述结构: 起作用的棘手部分是“ @objc”,它将协议暴露给目标c运行时,并允许我们传递任何“协议类型”作为参数。