7
votes

Comment puis-je créer un cadre objectif-C pour l'application iOS

Je suis au milieu de la création de classes génériques pouvant être réutilisables pour beaucoup d'applications.

Pour par exemple: Share Functions - Si nous avons besoin de cette fonctionnalité dans un projet, nous devons actuellement ajouter un groupe de classes dans ce projet et afficher le contrôleur de visualisation dans ce groupe de fichiers, dans ce contrôleur de vue, il y a des boutons. et ce que tous ont besoin de gérer le partage.

Qu'est-ce que mon idée est si un projet a besoin d'une telle fonctionnalité dont ils ont besoin d'ajouter un cadre et d'appeller une fonction dedans ou d'afficher la vue spécifiée dans le cadre c'est-à-dire. Aucun accès de niveau de code donné à qui vous faites ce projet. Donc, si un problème est trouvé dans ces classes génériques (cadre), je dois le réparer et recréer le cadre et la modification du projet qui utilise ce cadre sans affecter le projet existant.

Je pense non seulement à la fonction de partage. Plus comme un curseur d'image, un visualiseur PDF, un navigateur. un flux de couverture. Actuellement, j'ai du code pour toutes ces fonctions. Mais cela prend trop de temps sur d'autres de l'intégrer et l'utiliser. Si un problème constaté que nous devons modifier toutes les classes de source de projet.

Je passe par plusieurs liens dans Google

Puis-je développer mon propre Cadre Objective-C pour les applications tactiles de cacao?

http://www.cocoanetics.com/2010/04/ universel-statique-bibliothèques /

Guide de création de votre propre bibliothèque pour cacao (Touch) Développement

Je ne peux pas comprendre comment il utilise et certains d'entre eux ne l'ont pas expliqué complètement. certains manquants dans ces liens.

Merci d'avance


0 commentaires

6 Réponses :


4
votes

Je suppose que ce que vous demandez est de savoir comment créer une bibliothèque dynamique partagée pour iOS; et le long et court de cela est: vous ne pouvez pas.

Le seul type de bibliothèque prise en charge est la bibliothèque statique; Donc, chaque fois que vous apportez des modifications à votre bibliothèque; chaque application qui l'utilise doit être recompilée.


5 commentaires

Cette. En outre, ne soyez pas dupe en regardant autour du système d'exploitation. Le système d'exploitation est autorisé à (et fait) Vendez et consommez des cadres de bibliothèque dynamique partagés, les développeurs non OS ne peuvent pas. Si vous y réfléchissez, cela ne vous achète pas beaucoup sur iOS: votre application s'exécute dans sa proprebasse de sable et pour permettre aux bibliothèques dynamiques partagées arbitraires sur la plate-forme pourraient potentiellement subvertir ce mécanisme (à tout le moins, cela complique la question) . Je ne tiendrai pas mon souffle à attendre ça.


Merci Williham, mais j'ai créé un cadre avec .a extension pour l'utilisation de Xcode, mais c'est C code C. Par exemple: pjzip.


Ah, mais vous pouvez simuler un cadre contenant une bibliothèque statique. Une seule instance ne sera pas partagée sur les applications. Chaque application aura donc sa propre copie. Mais le cadre est plus facile à gérer que la bibliothèque statique + en-têtes.


@Jonreid: Cela pourrait être; Mais d'après ce que je peux voir de votre réponse, la gestion de la construction du cadre est distinctement moins facile à gérer.


Vrai. Plus difficile pour le producteur, plus facile pour le consommateur. Si vous êtes tous les deux, cela peut être un lavage.



3
votes

http://accu.org/index.php/journals/1594 offre instructions détaillées.

Ochamcrest le fait en prenant une copie de la version OS X du cadre et en remplaçant sa dynamique Bibliothèque avec une bibliothèque statique iOS. (Version XCode 4 à venir bientôt.)


4 commentaires

Je pense que c'est la réponse ce que je cherche .. Mais je suis maintenant occupé avec un autre projet, donc je reviendrai avec le résultat dans quelques semaines


L'approche utilisée par Ochamcrest a été d'utiliser un script d'exécution. J'ai constaté que cela ne fonctionne pas aussi bien dans Xcode 4, alors j'explète le script du projet et l'exécutera à l'extérieur.


Pouvez-vous s'il vous plaît expliquer comment pouvons-nous exécuter le script à l'extérieur sans utiliser xcode.


Exécuter le script de terminal.



0
votes

J'ai construit des modèles Xcode 4 pour le faire. Voir ma réponse ici: 0 commentaires


8
votes

1 commentaires

J'ai gagné cela pour travailler avec Xcode 4.6.3, mais malheureusement, les instructions sont jolies à l'abri. Regardez la liste des problèmes pour trouver des correctifs.



6
votes

Nous avons créé cadre strong> dans l'objectif C, c'est un travail parfait.

En suivant des étapes simples pour créer un cadre P>

1) Créer un nouveau cadre comme, P>

en Xcode Sélectionnez P>

   #  ============Script Start==============
   if [ "${ACTION}" = "build" ]
   then
   # Set the target folders and the final framework product.
   INSTALL_DIR=${SYMROOT}/DemoFramework.framework
   DEVICE_DIR=${SYMROOT}/Debug-iphoneos
   SIMULATOR_DIR=${SYMROOT}/Debug-iphonesimulator

  # Create and renews the final product folder.
  mkdir -p "${INSTALL_DIR}"
  rm -rf "${INSTALL_DIR}"
  rm -rf "${INSTALL_DIR}/DemoFramework"

 # Copy the header files to the final product folder.
 ditto "${DEVICE_DIR}/DemoFramework.framework/Headers" 
 "${INSTALL_DIR}/Headers"

 # Copy the info.plist file to the final product folder
 ditto "${DEVICE_DIR}/DemoFramework.framework/info.plist" 
"${INSTALL_DIR}"

# Copy the ResoureBundle.bundle file to the final product folder
ditto "${DEVICE_DIR}/DemoFramework.framework/ResourceBundle.bundle" 
"${INSTALL_DIR}/ResourceBundle.bundle"

# Use the Lipo Tool to merge both binary files (i386 + armv6/armv7) 
 into one Universal final product.
 lipo -create "${DEVICE_DIR}/DemoFramework.framework/DemoFramework" 
"${SIMULATOR_DIR}/DemoFramework.framework/DemoFramework" -output 
"${INSTALL_DIR}/DemoFramework"
 fi
 #  ============Script End==============


1 commentaires

J'ai bien peur qu'il y ait un problème avec votre script: mkdir -p "$ {install_dir}" rm -rf "$ {install_dir}"



0
votes

Consommateur d'Objective-C -> Cadre de l'objectif-C dynamique

Xcode version 10.2.1

Créer l'objectif-C Cadre

Suivez

Consommation de l'objectif-C avec cadre de l'objectif-C

Suivez Consommateur Swift avec cadre de l'objectif-C

Module d'importation vers Le code client de l'objectif-C [module_name] xxx

Appeler le code d'un cadre [Utilisation d'identifiant non déclaré]

[Plus d'exemples]


0 commentaires