J'essaie de suivre une partie du code utilisé lors de la session sur les terrains de jeu de la WWDC. J'essaie d'importer le framework Cocoa avec:
import Cocoa
Mais je reçois l'erreur suivante dans l'éditeur adjoint
Playground execution failed: error: <REPL>:3:8: error: no such module 'Cocoa'
Je suis à 41h20 dans la vidéo si cela aide du tout.
Vous utilisez une aire de jeu iOS (basée sur UIKit) et non une aire de jeu OS X (basée sur Cocoa). Essayez de créer un nouveau terrain de jeu et de choisir "OS X" comme type au lieu de "iOS". Cela devrait fonctionner correctement après cela.
Vous pouvez également modifier le type d'un terrain de jeu existant dans l'inspecteur de fichier (Affichage → Inspecteurs → Afficher l'inspecteur de fichier) sous Paramètres du terrain de jeu → Plate-forme.
Par défaut, les nouveaux terrains de jeu iOS sont créés avec un passe-partout, y compris import UIKit
; Les terrains de jeu OS X sont créés avec le standard standard, y compris import Cocoa
; si vous vous trouvez en train de taper manuellement "import Cocoa
", c'est probablement un indice que vous avez le mauvais type.
Si vous obtenez ce type d'erreur ou un type d'erreur similaire malgré le bon paramétrage du terrain de jeu, procédez comme suit:
Fermez XCode et à partir du terminal, lancez:
rm -rf "$(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang/ModuleCache"
Ensuite, rouvrez XCode et la plupart du temps, cela corrige de nombreux problèmes liés à Playground. J'exécute cette commande assez fréquemment au cours d'une session de travail intensive de Playground (parfois jusqu'à quelques fois par heure) et j'ai trouvé un usage généralisé de la suppression de ModuleCache pour résoudre une multitude de comportements étranges sur un terrain de jeu.
Si vous rencontrez toujours des problèmes avec les terrains de jeu, vous pouvez essayer:
rm -rf ~/Library/Developer/Xcode/DerivedData
et/ou
rm -rf ~/Library/Caches/com.Apple.dt.Xcode
Cette réponse m'aide
I fixed it… never replace an iOS playground by a OS X playground when you name them the
same…
it’ll stick with the iOS mode…