私たちのサーバー側の開発者は、私に辞書の辞書の辞書の辞書の辞書を持つJSON文字列を教えてくれています。それは本当に楽しいことです。だから、私はいつもそれらをdict [String:AnyObject]にシリアル化しています。オブジェクトをキャストするだけで問題はありませんでした。 :(今日ではありません!私は変換したときにポップアップした他のすべてのエラーを修正しましたが、これは私には意味をなさない、と私は同様の質問を見て、そのコードは私の状況を反映していません。 2年だから多分私は悪い習慣を使用していると誰かが悪い習慣の私を壊すことができるいずれかの方法私はいくつかの助けに感謝しますSwift3にアップデートして以来のサブスクリプションの問題
ここで私の解析機能の少しスニペットですあなたがそれを必要としています。あなたの助けのために再び
func parseRecipes()
{
if self.avarhub.jsonDICT["recipes"]!.count > 0
{
for index in 0..<self.avarhub.jsonDICT["recipes"]!.count
{
self.avarhub.recipe.append(self.avarhub.jsonDICT["recipes"]![index]["recipe"] as! String) //the errors all happen on these lines
//they say ambiguous reference to member 'subscript' or Type 'Any' has no subscript members
}
}
self.tableviewrecipe.reloadData()
}
感謝。
詳しいコード多分これは役立つだろう?
//data struscture my variable hub
internal struct varhub
{
//json dictionary
var jsonDICT = [String:AnyObject]()
var screenstatus = ""
var location = ""
var recipe = [String]()
var selectedrecipe = ""
}
//this function turns JSON string into a dictionary
func jsonStringToDict(_ text: String) -> [String:AnyObject]?
{
let data = text.data(using: String.Encoding.utf8)
do {
return try JSONSerialization.jsonObject(with: data!, options: []) as? [String:AnyObject]
}
catch _ as NSError
{
print("error")
}
return nil
}
私は私のparseRecipe機能のためヴァディアンのソリューションを使用していたし、私は他の多くの場所で心にレッスンを取るだろうが、私はまだ私が思いついたのソリューションを使用していた他の機能のための私のプロジェクトのいくつかの場所がありました私がここに入れているのは、たとえそれがvadianのようにうまくいかなくても助けになるかもしれない。
if self.avarhub.jsonDICT["recipes"]!.count > 0
{
for index in 0..<self.avarhub.jsonDICT["recipes"]!.count
{
let recipes = self.avarhub.jsonDICT["recipes"]! as! Array<Dictionary<String, String>>
self.avarhub.recipe.append(recipes[index]["recipe"]!)
}
}
self.tableviewrecipe.reloadData()
私は質問を明確にするためにいくつかのコードを追加しました。 vadianの提案を試してみよう –