다음 코드를이 라이브러리 (https://github.com/dankogai/swift-json)에서 Swift 3 호환 코드로 변환하려고합니다.AnyObject Swift 2에서 3으로 마이그레이션 JSON 오류
해결해야 할 몇 가지 오류가 있습니다. 나는 지금이 줄에 붙어있다.
extension JSON : Sequence {
내가 오류가 '유형'JSON은 시퀀스 '이
그것의 전체 문맥은 다음과 같습니다'프로토콜을 준수하지 않는 '입니다. 소스 코드에서 시퀀스가 프로토콜 준수 여부를 확인할 수있는 프로토콜로 존재했는지 여부를 확인했습니다. 스위프트 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 문도 오류가 발생합니다.
return (i, JSON(o[i]))
및 ...
return (k, JSON(o.value(forKey: k)!))
모두 동일한 오류, 가 (문자열, JSON) '형식을 반환하기'(AnyObject, JSON) '타입의 반환 식을 변환 할 수 없습니다'를 줄? '
리턴 문에서 AnyObject에 값 i와 k를 캐스트해야한다고 가정합니다. 나는 확실하지 않다.
다음은 나에게 제공되는 제안에 대한 자세한 스크린 샷입니다. 코드를 변경하는 방법을 아직 알지 못합니다.
'Any Any'를'Any'로 바꾸어보세요 – vadian