swift 3.1 从 web 读取 CSV 或 PLIST 文件

Posted

技术标签:

【中文标题】swift 3.1 从 web 读取 CSV 或 PLIST 文件【英文标题】:swift 3.1 reading CSV or PLIST file from web 【发布时间】:2017-03-28 15:56:33 【问题描述】:

我想使用 readStringFromURL 方法从 plist 中获取文件,然后在 insertDataInArrayFromPlist 上使用它来显示它或将它放在 CoreData 上,替换 let path = Bundle.main.path(forResource: plistFileName, ofType: plistFileExtension)

ISSUE try 语句给了我这个错误

Argument labels '(contentsOfURL:, usedEncoding:)' do not match any available overloads

在我看来DidLoad:

let obtainedfile = readStringFromURL(stringURL: kremoteSamplePlist)
print(obtainedfile ?? "nothing to print")

我从网上检索文件

   func readStringFromURL(stringURL:String)-> String!
        if let url = NSURL(string: stringURL) 
            do 
                return try String(contentsOfURL: url, usedEncoding: nil)
             catch 
                print("Cannot load contents")
                return nil
            
         else 
            print("String was not a URL")
            return nil
        
    

然后我把数据放在一个结构中

func insertDataInArrayFromPlist(arrayOfEntities: inout [product]) 

    let path = Bundle.main.path(forResource: plistFileName, ofType: plistFileExtension)
    let localArray = NSArray(contentsOfFile: path!)!
    for dict in localArray 
        var futureEntity = product()
        let bdict = dict as! [String: AnyObject]
        futureEntity.name = bdict["Name"] as? String
        futureEntity.ProductId = bdict["Product Id"] as? String
        arrayOfEntities.append(futureEntity)
    

    for element in arrayOfEntities 
        print("name is \(element.name!), the id is \(element.ProductId!)")
    


【问题讨论】:

return try String(contentsOf: url, usedEncoding:nil) ? 试过了,但我需要修改作为回报尝试 String(contentsOf: url as URL, usedEncoding: nil) 并得到这个错误:无法将'_'类型的不可变值作为 inout 参数传递 【参考方案1】:

通过 Cocoapods 可以使用 Yaslab 提供的 CSV.swift 库。允许您直接在 Swift 代码中导入 csv 并转换为您自己的数据类型。为我做这项工作。

https://github.com/yaslab/CSV.swift

【讨论】:

以上是关于swift 3.1 从 web 读取 CSV 或 PLIST 文件的主要内容,如果未能解决你的问题,请参考以下文章

Swift 无法读取 csv

HSQLDB:奇怪的“唯一约束或索引违规”,从 CSV 读取数据

HSQLDB:奇怪的“唯一约束或索引违规”,从CSV读取数据

从 qml 中的 .txt 或 .csv 文件中读取一行(Qt Quick)

从 bash 或 perl 脚本中读取 CSV [重复]

php 使用SplFileObject读取CSV文件。从CSV文件定义标题或管理标题行。返回数组中的行,标题值为