Après avoir essayé de nombreuses solutions différentes pour contourner ce bug extrêmement ennuyeux, j'ai trouvé une méthode qui fonctionne (ce n'est certainement pas un "correctif", mais une solution de contournement).
Verrouillez les contrôleurs lorsque vous avez fini de les utiliser.
Sélectionnez un contrôleur de vue dans un storyboard, ouvrez l'inspecteur d'identité et, en bas de la section Document, vous verrez une liste déroulante Verrouillage. Sélectionnez "Toutes les propriétés" dans la liste déroulante de verrouillage.
Si vous faites cela pour tous les contrôleurs qui vous posent problème (ou pour tous les contrôleurs en général, même), vous remarquerez que lorsque vous ouvrez le storyboard, Xcode modifie toujours les images des différents éléments, mais annule immédiatement les changements.
Cela conduit ensuite à ce que le cycle de développement soit :
- Déverrouiller un contrôleur de vue
- Effectuer les changements nécessaires
- Verrouiller le contrôleur de vue
- Engagez-vous
Le verrouillage fonctionne également sur la base d'une vue par vue si cela répond mieux à vos besoins.
Ce bogue existe depuis un certain temps déjà et ne semble pas vouloir être corrigé de sitôt. Malheureusement, il faudra s'en contenter pour l'instant.
0 votes
Je ne vois pas ce comportement dans mon environnement. Je me demande : Se pourrait-il que le xib en question ait été utilisé pour la dernière fois dans Xcode3, et que Xcode 4 effectue une conversion dans les coulisses ? Ou bien, voyez-vous cela chaque fois que vous sélectionnez un fichier xib, que ce soit la première fois que vous le sélectionnez dans Xcode4 ou non ? Y a-t-il des paramètres git où votre fichier est en lecture seule et peut-être Xcode change-t-il les permissions pour que vous puissiez le modifier ? Cela pourrait expliquer le statut modifié.
0 votes
Merci pour ces idées. Le fichier se trouvait dans un projet xcode 3. Le problème se produit chaque fois que je navigue vers ce seul fichier . Votre idée de conversion est bonne, mais le problème persiste même après une sauvegarde/construction. Pas de paramètres git spéciaux.
2 votes
Voici les étapes minimales avec lesquelles je peux reproduire ce problème : xcode->Nouveau fichier...->Interface utilisateur->Application xib. Faites glisser un contrôleur de barre d'onglets. Sauvegarder. Sélectionnez n'importe quel autre fichier dans le projet. Le nouveau xib est touché par xcode. Diffuser l'original avec les mods de xcode montre un tas de tags comme celui-ci : <reference key="NSWindow"/> et <reference key="IBUITabBar" ref="795333663"/> et un très gros bloc qui s'ouvre comme ceci : <objet class="NSMutableArray" key="referencedPartialClassDescriptions">. Suis-je fou ?
0 votes
Wow. Je vois le même comportement, en suivant vos étapes. Je me demande si c'est spécifique au fichier XIB qui est une Application xib ? Vous pouvez imaginer que ce xib a des connaissances spéciales sur des choses comme votre délégué d'application et autres. Ce comportement est vraiment bizarre, c'est certain.
1 votes
Merci de l'avoir vérifié. Je peux le reproduire avec n'importe quel xib. La clé semble être la présence d'un UITabBarController. J'ai signalé un bug à Apple... bug #9847336.
0 votes
XCode 4.5 - affecte xib et storyboard. Je ne vois aucune dépendance sur les différents éléments
0 votes
C'est de retour avec une vengeance pour moi. Il arrive même que je touche un xib lorsque je navigue vers un autre.
0 votes
Celui-là m'ennuie vraiment. J'ouvre simplement une Nib et pouf j'ai soudainement une référence NSWindow ou pouf elle disparaît.