我正在制作一个iOS应用程序,我正在尝试使用渗透从一个网站获取一些数据并在我的应用程序中显示出来。为了做到这一点,我遵循在github上的自述文件中描述的用法。
我的问题是,当我试图获取被解析的信息时,会出现一个错误。下面是我的代码片段:
class ViewController: UIViewController {
var array: [String] = []
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
Osmosis(errorHandler: { (error) -> Void in
print(error)
})
.get(NSURL(string: "www.mysite.com")!)
.find(OsmosisSelector(selector: ".quote"), type: .CSS)
.populate([
OsmosisPopulateKey.Single("quotes") : OsmosisSelector(selector: "tt_quotes b")
], type: .CSS)
.list { (dict) -> Void in
self.array.append(dict)
.start()
print(dict)当我试图构建我的项目时,我会得到以下错误:
ViewController.swift:34:35: Cannot convert value of type '[String : AnyObject]' to expected argument type 'String'
为什么我的项目崩溃,我应该如何声明我的数组,以使它正常工作?
发布于 2016-03-21 18:55:18
您可以在这里声明您的数组来保存String对象:
var array: [String] = []如果希望它保存字典,请将声明更改为:
var array: [[String : AnyObject]] = []或者使用[AnyObject]来保存任何类型的对象(字符串、字典等等)。
关于你的第二期,你不能关闭你的收尾:
.list { (dict) -> Void in
self.array.append(dict)
}.start()https://stackoverflow.com/questions/36139298
复制相似问题