私はそのようにプロトコルを宣言しました
protocol JSONConnection {
var request: NSURLRequest { get set }
var session: NSURLSession { get set }
var jsonRootObject: JSONSerializable? { get set }
}
ここで、JSONSerializable は実際の型ではなく、次のように宣言した別のプロトコルです。
protocol JSONSerializable {
func readFromJSON(json: JSON) throws
}
実際、この JSONConnection プロトコルには、JSONSerializable プロトコルに準拠する必要があるだけの jsonRootObject という変数が必要です。
罰金。
さて、実装について。
JSONSerializable プロトコルに準拠する JSONStockDetailRootObject というクラスを作成しました。
class JSONStockDetailRootObject: JSONSerializable
そして、JSONConnection プロトコルに準拠する StockConnection クラスを作成したいと考えました。
class StockConnection: JSONConnection {
var request: NSURLRequest
var session: NSURLSession
var jsonRootObject: JSONStockDetailRootObject?
}
JSONSerializable プロトコルに準拠したタイプの jsonRootObject 変数があれば、このクラス StockConnection は JSONConnection プロトコルに準拠すると思いましたが、そうではありません。
コンパイラは次のように主張しています。
私は何が欠けていますか?ありがとう