2010-11-12 4 views
1

Je voudrais utiliser EventKit pour intégrer le calendrier dans mes applications iPhone et iPad. Toutefois, lorsque j'utilise ce code comme MonoTouch.EventKit, l'application ne fonctionne pas sur mon périphérique OS 3.x (iPod touch 2G).Comment utiliser l'intégration d'EventKit (Calendrier) et prendre en charge iOS 3.x (MonoTouch)?

Existe-t-il un moyen de créer une application dans MonoTouch tout en conservant la version minimale du système d'exploitation en version 3.0 tout en prenant en charge iOS 4 et EventKit en même temps? Comment puis-je inclure la fonctionnalité EventKit pour les appareils iOS 4 sans interrompre la prise en charge des appareils 3.0?

Merci

Répondre

2

Comme mentionné par bosmacs, pour ce faire, vous devez indiquer à MonoTouch que vous devez effectuer un lien "faiblement" avec le framework EventKit. Les liaisons faibles garantissent que le framework n'est chargé qu'à la demande la première fois qu'une classe du framework est requise.

Pour ce faire, vous devez prendre les mesures suivantes:

  • Ouvrez vos options de projet et accédez à l'iPhone volet Bât.
  • Ajouter « -gcc_flags « -weak_framework
    iAd » » aux arguments supplémentaires pour chaque configuration que vous souhaitez créer un lien faiblement sur

En plus de cela, vous aurez besoin de garder votre utilisation des types de s'exécuter sur les anciennes versions d'iOS, où ils peuvent ne pas exister. Il existe plusieurs méthodes pour accomplir cela, mais l'une d'entre elles consiste à analyser UIDevice.CurrentDevice.SystemVersion.

1

Vous devriez être en mesure de faible liaison le cadre de EventKit, puis vérifier lors de l'exécution de l'existence des classes dont vous avez besoin. Voir aussi: EventKit in Universal app (OS3.2), iPhone checking for existence of AVCaptureSession Class et How do you optionally use iPhone OS 3.0 features in a 2.0 compatible app?

En définissant votre cible de déploiement dans les paramètres du projet à 3,0, mais la compilation contre un SDK 4.x, le faible aspect de liaison doit être pris en charge pour vous.

Questions connexes