2016-03-21 3 views
1

iOSアプリケーションを作成していますが、Osmosisを使用してウェブサイトからデータを取得し、アプリに表示しようとしています。これを行うために、私はusageに従っています。githubのreadmeファイルに記載されています。アレイを浸透で使用する

私の問題は、解析された情報を取得しようとするとエラーが発生することです。ここに私のコードの抜粋です:

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'

なぜ私のプロジェクトがクラッシュし、どのように私はすべき正しく動作させるために配列を宣言しますか?

var array: [[String : AnyObject]] = [] 

またはオブジェクトのいずれかの種類を保持するために[AnyObject]を使用します。あなたはそれは、辞書を保持するために宣言を変更したい場合は

var array: [String] = [] 

答えて

2

現在地Stringオブジェクトを保持するために、あなたの配列を宣言します(文字列、辞書、何でも)。あなたの答えのために

.list { (dict) -> Void in 
    self.array.append(dict) 
}.start() 
+0

おかげで、私はそれを行うとき、私は次のエラーを取得:

あなたの第二の問題については

、あなたはあなたの閉鎖を閉じない 'ViewController.swift:34:28 :タプルタイプ '()'の値にメンバー 'start''がありません – Mehdi

+0

@Mehdiはあなたの2番目の質問に答えるために私の答えを編集しました。 – JAL

+0

愚かなエラー..ありがとう! – Mehdi

関連する問題