You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift 4(XCode 9.3)中如何将字典数组写入指定格式的plist文件?

如何用Swift 4将字典数组生成为指定格式的Plist文件?

首先要注意的是:你目标Plist里的ipport和upsport是字符串类型,但你现有的字典数组里这两个字段是数字类型(Int),所以第一步得先把这些数字转成字符串,不然生成的Plist会输出<integer>标签而不是<string>,不符合你的要求。

接下来可以用Swift的PropertyListSerialization类来完成序列化和写入操作,下面是完整的实现代码:

// 你的原始字典数组
let originalArray: [[String: Any]] = [
    ["ipaddress": "192.168.10.101", "ipport": 12345, "upsname": "S 2000 (Port 1)", "upsport": 1],
    ["ipaddress": "192.168.10.102", "ipport": 12345, "upsname": "S 3000 (Port 2)", "upsport": 2],
    ["ipaddress": "192.168.10.103", "ipport": 12345, "upsname": "S 2000 (3)", "upsport": 3]
]

// 第一步:转换数据类型,将数字转成字符串
var convertedArray = [[String: String]]()
for dict in originalArray {
    var convertedDict = [String: String]()
    convertedDict["ipaddress"] = dict["ipaddress"] as? String ?? ""
    convertedDict["ipport"] = String(dict["ipport"] as? Int ?? 0)
    convertedDict["upsname"] = dict["upsname"] as? String ?? ""
    convertedDict["upsport"] = String(dict["upsport"] as? Int ?? 0)
    convertedArray.append(convertedDict)
}

// 第二步:获取要保存的Plist文件路径(这里以Documents目录为例)
guard let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first else {
    print("无法获取Documents目录")
    return
}
let plistPath = documentsDirectory.appendingPathComponent("ups_config.plist")

// 第三步:将数组序列化为Plist格式的数据
do {
    let plistData = try PropertyListSerialization.data(fromPropertyList: convertedArray, format: .xml, options: 0)
    // 写入文件
    try plistData.write(to: plistPath)
    print("Plist文件已成功生成,路径:\(plistPath)")
} catch {
    print("生成或写入Plist失败:\(error.localizedDescription)")
}

代码说明:

  • 数据类型转换:遍历原始数组,把ipport和upsport的Int值转成String,确保生成的Plist里对应标签是<string>。
  • 文件路径:这里选择了App的Documents目录作为保存位置,你也可以根据需求换成其他路径。
  • 序列化与写入:PropertyListSerialization.data(fromPropertyList:format:options:)方法负责把数组转成XML格式的Plist数据,然后用write(to:)方法写入到指定路径。

运行这段代码后,生成的Plist文件就会和你给出的Objective-C示例格式完全一致了。

内容的提问来源于stack exchange,提问作者La Ciste

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 03:48:14