从 plist 中检索多行

桑迪普·奇托

我的 plist 中有一些代码数据。我正在尝试使用 Xcode 阅读它。基本上我想检索满足给定条件的多行

我只能使用以下代码检索 1 行:但我无法检索超过 1 行。例如我有以下几行

住宿 col1 col2 col3 1. ab c 1. de f

print(getDateForDate(date: "1"))

func getSwiftArrayFromPlist(name: String) -> (Array<Dictionary<String,String>>)
        {
        let path = Bundle.main.path(forResource: name, ofType: "plist")
        var arr : NSArray?
        arr = NSArray(contentsOfFile: path!)
        return(arr as? Array<Dictionary<String,String>>)!
    }
    func getDateForDate(date: String) -> (Array<[String:String]>)
    {
        let array = getSwiftArrayFromPlist(name: "file")
        let namePredicate = NSPredicate(format: "Lodging = %@", date)
        return [array.filter{namePredicate.evaluate(with: $0)}[0]]
    }

上面的代码能够检索第 1 行,但不能检索第 2 行。我想提取所有符合条件的行。不止一个

瓦迪安

首先,不鼓励您使用NSArrayNSDictionaryAPI阅读 plist 使用PropertyListSerialization或更好地将属性列表反序列化为具有Codable协议的结构

func getSwiftArrayFromPlist(name: String) -> [[String:String]]
{
    let url = Bundle.main.url(forResource: name, withExtension: "plist")!
    let data = try! Data(contentsOf: url)
    return try! PropertyListSerialization.propertyList(from: data, format: nil) as! [[String:String]]
}

您的谓词过滤数组并返回第一个对象[0],将行更改为

return array.filter{namePredicate.evaluate(with: $0)}

NSPredicate冗余,斯威夫特就可以直接进行过滤。并且返回类型周围的括号也是多余的

func getDateForDate(date: String) -> [[String:String]]
{
    let array = getSwiftArrayFromPlist(name: "file")
    return array.filter{ $0["Lodging"]! == date }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从Plist检索颜色。的iOS

来自分类Dev

在python中编辑plist

来自分类Dev

更新.plist中的字段

来自分类Dev

plist 文件中的数组

来自分类Dev

在Swift中写入plist文件

来自分类Dev

在PList中搜索术语的存在

来自分类Dev

如何在ios中的Plist文件中保存,检索,删除和更新我的数据?

来自分类Dev

从.plist检索的Objective-C样式在Swift中不起作用?

来自分类Dev

将图像路径存储在plist中,然后检索以在屏幕上显示

来自分类Dev

removeObjectForKey不会从.plist中删除值

来自分类Dev

从iOS项目捆绑中读取plist文件

来自分类Dev

相当于Android中的plist

来自分类Dev

从ios中的UITableView,Plist生成PDF

来自分类Dev

自定义plist文件中的变量

来自分类Dev

写入文档目录Xcode中的plist

来自分类Dev

如何在Swift中从PLIST读取数据?

来自分类Dev

将数据保存到xcode中的plist

来自分类Dev

从plist中删除子键(Objective-C)

来自分类Dev

如何在Swift中从PLIST读取数据?

来自分类Dev

在Swift中无法获取plist URL

来自分类Dev

更新档案中的Info.plist值

来自分类Dev

如何使用plist从uitableview中删除?

来自分类Dev

何时将配置数据存储在.plist中?

来自分类Dev

iOS:从字典中的.plist读取数据

来自分类Dev

无法在IOS中创建plist文件

来自分类Dev

如何在plist中查找值的数量?

来自分类Dev

启动之间的UITableView中的持久数据的Plist

来自分类Dev

removeObjectForKey不会从.plist中删除值

来自分类Dev

在数组项中编辑键-plist