実現したいこと
複数クラス共通のメソッドを作成したい
前提
class Aとclass Bには別々の構造体の配列プロパティが含まれていて,共通のメソッドを作成してそのプロパティの配列数を取得する。
同じプロパティ名なので,プロトコルを使用したが,クラスに適合しないというエラーが出ている。どのように解消したら良いか,わかりません。初心者です。どなたかご教示いただける方お願いします。
発生している問題・エラーメッセージ
Type 'A' does not conform to protocol 'Ex' Type 'B' does not conform to protocol 'Ex'
該当のソースコード
Swift
1struct S1 :Codable{ 2 var s: Int 3 var children:[Int] = [1,2,3] 4} 5 6struct S2 :Codable{ 7 var s: Int 8 var children:[Int] = [1,2] 9} 10 11protocol SP{ 12 associatedtype Node:Codable 13 var children:[Int]{ get set} 14} 15protocol Ex { 16 associatedtype TypeNode:SP 17 var a: [TypeNode]{get set} 18} 19 20class A: Ex{ 21 var a = [S1] () 22} 23 24class B : Ex{ 25 var a = [S2]() 26} 27 28extension Ex{ 29 func count() -> Int { 30 return a[0].children.count 31 } 32} 33 34 35var a = A() 36var b = B() 37 38 39print("\(a.count() )" ) 40print("\(b.count() )" ) 41

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。