web-dev-qa-db-fra.com

Aucun module de ce type "Cacao" dans l'aire de jeu Swift

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.

30
Charlie Egan

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.

84
Matt Gibson

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
15
Jay

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…
0
Lynne