次のコードをこのライブラリ(https://github.com/dankogai/swift-json)からSwift 3互換コードに変換しようとしています。AnyObjectのSwift 2から3への移行JSONエラー
解決するには、いくつかのエラーが残っています。私は今この行に立ち往生しています。
extension JSON : Sequence {
私が手にエラーが「タイプ 『JSONである』プロトコルに準拠していないが 『シーケンス』
その完全なコンテキストは以下の通りです。私はソースコードを見て、Sequenceがどのように準拠するかを確かめるためのプロトコルとしてSequenceがすでに存在していたかどうかを確認しましたが、どこから来たのかはわかりません。私はこれがスウィフト2で働いていたことを知っています。
extension JSON : Sequence {
public func generate()->AnyIterator<(AnyObject,JSON)> {
switch _value {
case let o as NSArray:
var i = -1
return AnyIterator {
i=i+1
if i == o.count { return nil }
return (i, JSON(o[i]))
}
case let o as NSDictionary:
var ks = Array(o.allKeys.reversed())
return AnyIterator {
if ks.isEmpty { return nil }
if let k = ks.removeLast() as? String {
return (k, JSON(o.value(forKey: k)!))
} else {
return nil
}
}
default:
return AnyIterator{ nil }
}
}
public func mutableCopyOfTheObject() -> AnyObject {
return _value.mutableCopy as AnyObject
}
}
何らかの形で接続されている場合、両方のリターンステートメントもエラーを出します。
return (i, JSON(o[i]))
と...
return (k, JSON(o.value(forKey: k)!))
の両方が(ANYOBJECT、JSON) 'タイプを返すように '(文字列、JSON)「タイプのreturn式を変換できません' 、同じエラーを与えて?'
リターン文の値iとkをAnyObjectにキャストする必要があることを修正するとします。私は確信していません。
ここに私に与えられた提案の詳細なスクリーンショットがあります。まだコードを変更する方法がわかりません。
'Any Any'を' Any'で置き換えようとします – vadian