Closed FlorianIannalfo closed 7 years ago
Hello,
Visiblement tu as le même problème que j'ai eu... #5 Il faut redéfinir toutes les paramètre et les fonctions comme dans les tests de taskManagerTest.
Bonne chance pour la suite
Exact! Bien vu.
Dans les fichiers de tests, vous pouvez voir comment je récupère les places et transitions créées avec le réseau:
J'ai le même problème mais je ne vois pas comment le régler. Qu'entendez-vous par redéfinir tous les paramètres et les fonctions ?
si tu vas sur le lien donné plus haut, tu remarque que les état et fonctions sont redéclarer dans le fichier test : https://github.com/cui-unige/outils-formels-modelisation/blob/master/tp-01/TaskManager/Tests/TaskManagerLibTests/TaskManagerLibTests.swift#L17
tu peux t'en inspirer en prenant l'objet taskmanager déclaré plus haut dans main.
J'ai beau lire et relire le code et vos commentaires, je n'arrive pas à résoudre le même problème mentionné par l'ouverture de cette issue. Si quelqu'un peut éclairer ma lanterne...
L'erreur laissée par Swift est la suivante:
.../main.swift:6:10: error: use of unresolved identifier 'create'
let m1 = create.fire(from: [taskPool: 1, processPool: 1, inProgress: 1])
^~~~~~
Ceci veut dire que la variable create
n'existe pas. Il faut effectivement qu'elle soit déclarée avant de pouvoir être utilisée. En outre, on veut également que cette variable soit assignée à la transition correspondante.
La fonction createTaskManager()
retourne une instance de PTNet
, laquelle regroupe toutes les informations voulues (places et transitions). Il s'agit donc d'extraire l'object correspondant à la transition create
de l'instance retournée par createTaskManager()
:
let net = createTaskManager()
let create = net.transitions.first { $0.name == "create" }!
PTNet.transitions
est un ensemble de transitions (Set<PTTransition>
). Le code ci-dessus récupère la première transition de cet ensemble dont le nom est "create"
, grâce à la méthode Set.first(where:)
. Comme cette méthode retourne un type optionnel (au cas où l'objet recherché n'aurait pu être trouvé), il faut encore l'unwrap, ce que je force avec !
.
Merci pour les rapides précisions malgré l'heure tardive !
Bonjour monsieur, J'ai essayé de build le fichier main.swift dans Sources/TaskManager après avoir écris mon code mais cela me donne une erreur à chaques fois : Compile Swift Module 'TaskManager' (1 sources) /home/florian/Desktop/outils-formels-modelisation-master/tp-01/TaskManager/Sources/TaskManager/main.swift:6:10: error: use of unresolved identifier 'create' let m1 = create.fire(from: [taskPool: 1, processPool: 1, inProgress: 1]) ^
~/home/florian/Desktop/outils-formels-modelisation-master/tp-01/TaskManager/Sources/TaskManager/main.swift:6:29: error: use of unresolved identifier 'taskPool' let m1 = create.fire(from: [taskPool: 1, processPool: 1, inProgress: 1]) ^~~~ /home/florian/Desktop/outils-formels-modelisation-master/tp-01/TaskManager/Sources/TaskManager/main.swift:6:42: error: use of unresolved identifier 'processPool' let m1 = create.fire(from: [taskPool: 1, processPool: 1, inProgress: 1]) ^~~/home/florian/Desktop/outils-formels-modelisation-master/tp-01/TaskManager/Sources/TaskManager/main.swift:6:58: error: use of unresolved identifier 'inProgress' let m1 = create.fire(from: [taskPool: 1, processPool: 1, inProgress: 1]) ^~~~~~ /home/florian/Desktop/outils-formels-modelisation-master/tp-01/TaskManager/Sources/TaskManager/main.swift:7:6: error: use of unresolved identifier 'create' m1 = create.fire(from: m1!) ^~error: terminated(1): /home/florian/Downloads/swift-4.0-RELEASE-ubuntu16.10/usr/bin/swift-build-tool -f /home/florian/Desktop/outils-formels-modelisation-master/tp-01/TaskManager/.build/debug.yaml mainMerci d'avance, PS: Je suis passé à votre bureau mais vous n'étiez pas la.