2016-03-21 21 views
1

Bir iOS uygulaması yapıyorum ve bir web sitesinden bazı verileri almak ve onu uygulamamda görüntülemek için Osmosis kullanmaya çalışıyorum. Bunu yapmak için, usage'u github'daki readme dosyasında açıklandığı gibi takip ediyorum.Osmosis ile Array Kullanımı

Sorunum, ayrıştırılan bilgileri almaya çalışırken hata alıyorum. İşte benim kod snippet'idir var:

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) 

Projemi oluşturmaya çalışın, aşağıdaki hatayı alıyorum:

ViewController.swift:34:35: Cannot convert value of type '[String : AnyObject]' to expected argument type 'String'

neden görünmüyor proje kazasında ve nasıl olması gerektiği Düzgün çalışmasını sağlamak için dizimi bildirilsin mi?

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

veya nesnelerin herhangi türlerini tutmak için [AnyObject] kullanın: Eğer, sözlükleri tutmak için deklarasyon değiştirmek istiyorsanız

var array: [String] = [] 

:

cevap

2

Burada String nesneleri tutmak için diziyi bildirmek (Dizeler, Sözlükler, her neyse). Cevabınız için

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

Teşekkür, ama bunu yaparken, aşağıdaki hatayı alıyorum:

İkinci sorunu için

, kendi kapatma kapatmayın 'ViewController.swift: 34: 28 : Tuple türünün değeri '()' hiçbir üye 'start' yok – Mehdi

+0

@ Mehdi ikinci sorunuzu ele almak için cevabımı düzenledi. – JAL

+0

aptal hata .. teşekkürler! – Mehdi