2015-08-03 28 views
42

kullandığı için bildirilemez Genel olarak iki sınıf Content ve Bucket oluşturdu. Bucket, Content nesnesinin bir dizisini içerir ve bunu bir ortak özellik aracılığıyla ortaya çıkarır. bu neden bir hata yükselttiğini üzerindeÖzellik türü, dahili bir türü

Property cannot be declared public because its type uses an internal type

enter image description here

Herhangi düşünceler: Ben bunu Ancak, ben hata alırsınız?

+0

ortak (Array ) 'gibi sadece halka temel bir sınıf ortaya çıkarmak için bir yol görmek güzel olurdu let içeriği: Dizi ' –

cevap

84

Content sınıfının genel erişim düzeyini de bildirmeniz gerekir. documentation belirtildiği üzere

public class Content { 
    // some code 
} 

: bunları ifşa etmeye public anahtar kelime eklemek zorunda

A public variable cannot be defined as having an internal or private type, because the type might not be available everywhere that the public variable is used.

Sınıflar, varsayılan olarak internal olarak ilan edilir.

Benzer bir kural, işlevler için de vardır.

A function cannot have a higher access level than its parameter types and return type, because the function could be used in situations where its constituent types are not available to the surrounding code.

+1

Güzel cevap. Xcode (9.2) yeniden başlatılıncaya kadar hatanın gitmeyeceğini de buldum. – Jasongiss

6

Content çok kamu olarak ilan edilmelidir:

public class Content { 
    … 
} 

sen de iç olarak Bucket ilan etme lütfen kullanım durumunda bağlı. Bu durumda public anahtar kelimesini atlayın.