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 文件的主要内容,如果未能解决你的问题,请参考以下文章
HSQLDB:奇怪的“唯一约束或索引违规”,从 CSV 读取数据
HSQLDB:奇怪的“唯一约束或索引违规”,从CSV读取数据