0
Selon le doc d'Apple:Un type peut-il se conformer au protocole avec un niveau d'accès plus élevé que le type lui-même?
“A type can conform to a protocol with a lower access level than the type itself. ”
Cependant, la pièce de code suivante pourrait compiler sans erreur:
fileprivate class A : SomeProtocol {
func foo() {}
}
public protocol SomeProtocol {
func foo()
}
Quelqu'un pourrait-il expliquer cela?
Etes-vous écrit dans les deux classes dans le même fichier? –
Le fait que le code compile ne contredit pas la déclaration que vous avez citée - il dit "peut", pas "peut seulement". Apple tient simplement compte du fait que vous pouvez vous conformer à un protocole avec un niveau d'accès plus élevé (ce qui est parfaitement logique), et se concentre plutôt sur le cas le plus surprenant de se conformer à un protocole avec un niveau d'accès inférieur. – Hamish
@phanisai Oui, ils sont dans le même fichier. –