2016-03-25 1 views
0

最新のXcodeを更新して以来、このコードに関連して「下付き文字のあいまいな使用」が発生しました。下付きスウィフトiOSのあいまいな使用

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
     var cell = tableView.dequeueReusableCellWithIdentifier("postsCell") as! CustomTableViewCell! 
     if cell == nil { 
      cell = CustomTableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "postsCell") 
     } 
     let dict:NSDictionary = arrPosts[indexPath.row] 

     if let postResourceName = dict["resource_name"]![0] as! String? where !postResourceName.isEmpty { 
      cell?.customPostTitle?.text = String(htmlEncodedString: postResourceName) 
     } else if let postTitle = dict["title"]!["rendered"] as? String { 
      cell?.customPostTitle?.text = String(htmlEncodedString: postTitle) 
     } 

特にこの行には、

if let postResourceName = dict["resource_name"]![0] as! String? where !postResourceName.isEmpty { 

私はSwiftには新しく、これはエラーがスローされている理由である可変型に関する詳細の不足に関係していると思います。しかし、私はコードが何であるべきかについては不明です。

任意のポインタ?

よろしく、 マイケル

+0

あいまいな使用は辞書からの値が常にあるので、コンパイラは適切な型を推測することができないことを意味し

let dict = arrPosts[indexPath.row] as [String:[String]] 
'ANYOBJECTで

let dict:NSDictionary = arrPosts[indexPath.row] 

を交換することにより、あなたの辞書にArrayを持っていることを指定することができ'。 'arrPosts'はどのように宣言されていますか?そして、あなたがSwiftに慣れていないなら、言語ガイドの 'Optional binding'についてのパラグラフを注意深く読んでください。 – vadian

+0

arrPostsの初期変数は次のように定義されています。 var arrPosts = [[String:AnyObject]] –

答えて

0
ISは、あなたが辞書であなたが dict["resource_name"]![0]を行うときに、あなたが含まれている配列の最初の項目にアクセスしたい、 valuesとして持っていないオブジェクトを確認していないため

スウィフト、コンパイラはあなたにそのエラーを与えます辞書にはvalueと表示されます。しかし、値が配列なので、valuesの型がAnyObjectであるとは決して決して言いません。あなたは

添字の
+0

ありがとう、ちょうどこれを試して、今私は同じ行に次のエラーが表示されます。ジェネリック型 'Array'への参照には引数が必要です<...> arrPostsの初期変数は次のように定義されます。 var arrPosts = [[String:AnyObject]] –

+0

私の回答を更新しました – Jelly

+0

「別名」に変更する必要がありましたが、これは解決しました。通常どおり、他のエラーにフラグが立てられます。今これらを通って仕事をする時間。 –

関連する問題