1. ホーム
  2. swift

[解決済み] プロパティの型が内部型を使用しているため、publicを宣言することができない

2022-10-06 18:41:41

質問

私は2つのクラス ContentBucket . Bucket の配列が含まれます。 Content オブジェクトの配列を含み、パブリックプロパティでそれを公開しています。 しかし、そうすると、エラーが発生します。

プロパティは、その型が内部型を使用しているため、publicと宣言することができません。

なぜこれがエラーを発生させるのか、何か考えがありますか?

どのように解決するのですか?

のアクセスレベルを宣言する必要があります。 Content クラスも同様にpublicにします。

public class Content {
   // some code
}

に記載されているように のドキュメントにあるように :

パブリック変数は、内部変数またはプライベート変数として定義することはできません。 なぜなら、その型はパブリック変数が使われるすべての場所で利用できない可能性があるからです。 なぜなら、その型はパブリック変数が使用されるあらゆる場所で利用できないかもしれないからです。

クラスは以下のように宣言されます。 internal で宣言されているため、デフォルトでは public キーワードを追加してください。

同様のルールが関数にも存在します。

関数は、そのパラメータ型や戻り値の型よりも高いアクセスレベルを持つことはできません。 と戻り値の型よりも高いアクセスレベルを持つことはできません。 というのも、関数はその構成要素が周囲のコードから利用できないような状況で使用される可能性があるからです。