Mon environnement iOS dynamique de test XYZFramework
est constitué d'une seule classe XYZ
.
Cependant, même après avoir déclaré:
import XYZFramework
Je ne peux pas accéder à cette classe, aucune tentative ne générant l'erreur suivante:
Use of unresolved identifier 'XYZ'
Comment résoudre ce problème?
Trouvé la réponse. Je devais préfixer ma déclaration de classe avec le modificateur public
. Donc ça:
class XYZ {
}
est devenu:
public class XYZ {
}
Et, comme toujours, le fait de supprimer le dossier ~/Library/Developer/Xcode/DerivedData
a résolu les problèmes mineurs.
Si la classe de votre framework contenait également des fonctions membres statiques et membres d'instance, vous devez également ajouter des mots clés public
supplémentaires.
// set the Framework class to Public
public class FrameworkHello{
// set the initializer to public, otherwise you cannot invoke class
public init() {
}
// set the function to public, as it defaults to internal
public static func world() {
print("hello from a static method")
}
}
Maintenant, vous pouvez y accéder via votre code Swift ou avec lldb:
(lldb) po FrameworkHello.world()
hello from a static method
Cela garantit que les symboles du Framework sont accessibles dans une version Release.