Comment sont des objets définis dans un fichier et comment sont-XIB, ils ont créé lors de l'exécution?

StackOverflow https://stackoverflow.com/questions/1453807

  •  12-09-2019
  •  | 
  •  

Question

Je viens d'acheter un Mac et je commence à explorer le développement de logiciels en utilisant Cocoa et Objective-C à l'aide XCode dans la neige bondis être venu d'une solide Microsoft et C # backgrund

Toute la documentation et des tutoriels que j'ai lu utiliser Interface Builder et Xcode pour créer des applications avec des interfaces utilisateur. Ma compréhension actuelle est que les objets créés par Interface Builder sont d'une manière définie dans un fichier .xib et créé lors de l'exécution.

Un paquet contient le code et les ressources qui l'accompagnent. Est-il exact de dire qu'un fichier .xib est en fait un paquet qui contient des ressources de l'interface utilisateur et que ce paquet est chargé (est que le verbe correct?) À des instances d'exécution et l'objet sont créés?

Si le abive est vrai est-il possible que je peux voir le code généré par Interface Builder et le point dans le code où ces objets sont créés, sans voir au moins une fois je me sens comme il y a beaucoup de « magique » qui se passe et qui ne me aide à ce stade de mon apprentissage.

Est-ce que je devrais lire pour saisir le changement de paradigme apparent entre C # / WinForms et Objective-C / Mac OS / Cocoa?

Était-ce utile?

La solution

  

Est-il exact de dire qu'un fichier .xib est en fait un paquet qui contient des ressources de l'interface utilisateur et que ce paquet est chargé (est que le verbe correct?) À des instances d'exécution et l'objet sont créés?

Non. Un faisceau est l'un des noreferrer plusieurs structures de répertoires spécifiques , et un fichier est régulièrement xib fichier, pas un répertoire.

Un fichier contient des descriptions des xib objets. Lorsque vous compilez la pointe (généralement dans le cadre de la construction de votre application), le compilateur de pointe dans le lit xib, crée les objets qui y sont décrites, et les archives dans une plume, ce qui est un paquet non plus.

Lorsque vous chargez la pointe dans votre application, le chargeur de pointe désarchive les objets et assure toutes les sorties sont connectées comme ils l'étaient dans IB entre ses objets et depuis et vers le propriétaire du fichier.

Ne vous inquiétez pas sur les détails de mise en œuvre. Nibs Tout travail. Tout ce que vous avez à faire est:

  1. Créer des fichiers xib. Si vous utilisez le contrôle de version, ce sont ce que vous dites à suivre.
  2. Assurez-vous qu'ils sont dans des dossiers .lproj (de sorte que les localisateurs peuvent créer des versions localisées d'entre eux).
  3. Laissez Xcode gérer le reste.

Autres conseils

L'essentiel à comprendre est qu'il n'y a pas de code dans le sens normal ... au moins, nib / ressources de l'interface utilisateur ne sont pas simplement xib contruscts de code Objective-C qui sont simplement générés par le constructeur Inteface. Ce sont des objets qui sont en quelque sorte « gelé » dans les grué et « dégelé » en cas de besoin par les applications (ou éveillé, je suppose, comme awakeFromNib suggérerait). Ils sont archivés au format XML / plist / etc forme, plutôt que d'être un cadre pour générer du code source objective-c.

Considérez-les objets qui ont été sérialisés en XML ou d'autres données.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top