私はそれに従うプロトコルと2つのクラスを作成しようとしています。プロトコルには、別のプロトコルに準拠するプロパティがあり、クラスには一致するプロパティが必要です。プロトコルタイプのプロパティを宣言するプロトコルに準拠するにはどうすればよいですか?
これは私がこれまでにしようとしているものを(のようなもの)である:
protocol Edible {
func eat()
}
class Apple:Edible {
func eat() {
print("Crunch")
}
}
class Banana:Edible {
func eat() {
print("Homph")
}
}
protocol Delicious {
func consume()
var fruit: Edible? { get set }
}
class ToffeeApple: Delicious {
func consume() {
print("I like toffee apples!")
fruit.eat()
// ...
}
var fruit: Apple?
}
class BananaSplit: Delicious {
func consume() {
print("Ah! A banana split!")
fruit.eat()
// ....
}
var fruit: Banana?
}
私は取得しています(関連)の誤差がある「タイプ 『ToffeeApple』プロトコルに準拠していない 『おいしいです』」(バナナとバナナスプリットでも同様です)。私はApple
とBanana
の両方のプロパティがEdible
に準拠しており、fruit
のように要件を満たすと考えました。これらのうちの1つを間違って宣言していますか、これは不可能ですか?
多くのありがとうございます。
これは動作しますが、私は理由が分かりません!この変化は実際に何を意味しますか?私は関連するタイプを読む必要があると思う。 –
回答が更新されました。これがあなたが望むものです。https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Generics.html – beeth0ven