2017-12-06 9 views
0

私は現在Swift 4で電子商取引アプリケーションを作成しており、データをMoltinとリンクしています。私は学校でこれをやっているので、私はこれで新しいです。私はCodeWithChrisのチュートリアルにも従っていますが、それは古く、私のレイアウトは少し異なります。私はそれにすべてを追ったが、私はこのエラーが表示されます:Swiftコンパイラエラー: '[AnyHashable:Any]?'と入力してください。サブスクリプトメンバーがありません

Type '[AnyHashable : Any]?' has no subscript members

私はなぜそれを理解していません。

self.objects = responseDictionary["result"] as? [AnyObject] 

私はas!as?を変更しようと、それはまだ動作しませんでした。

ここに私の完全なコードがあります。

import UIKit 
import Moltin 

class TableViewController: UITableViewController { 
var objects = [AnyObject]() 

override func viewDidLoad() { 
    super.viewDidLoad() 
    Moltin.sharedInstance().setPublicID('***my store ID***') 

    Moltin.sharedInstance().product.listing(withParameters: nil, success: { (responseDictionary) in 
     self.objects = responseDictionary["result"] as? [AnyObject] 

     self.tableView.reloadData() 
    }) { (responseDictionary, error) in 
     print ("Something went wrong") 
    } 
} 
+0

'[AnyHashable:任意]' '別名オプション<?[AnyHashable:任意]>'はありません。下付きメンバ、 '[AnyHashable:Any]'は他にもあります。 – user28434

答えて

1

responseDictionary存在を確認する必要があるオプションのように表示されます。

Moltin.sharedInstance().product.listing(withParameters: nil, success: { (response) in 
    guard let responseDictionary = response as? [AnyHashable : Any] else { 
     print("Error: respnonse is empty") 
     return 
    } 

    self.objects = responseDictionary["result"] as? [AnyObject] 

    // ... 
} 
+1

あるいは 'as? 'を使用していて、オプションのバックを期待しているのであれば、' self.objects = response?["result"] as? [AnyObject] ' – Connor

関連する問題