2010-10-01 6 views
3

Je suis la tutotial sur le site Web d'Apple pour construire votre première application iPhone, car il est un domaine que je voudrais être impliqué.erreurs de propriété Synthétiser lors de la compilation iPhone app

J'ai terminé l'application, mais décidé pour le fusionner avec une autre application. (On change simplement une image quand on tape, on affiche le texte d'une boîte de texte quand un bouton est appuyé, donc pas trop difficile à combiner)

J'ai copié la plupart du code avec succès, mais quelque part je me suis trompé comme 6 fois j'obtiens l'erreur

@synthesize property must be in implementation context 

pour les 6 choses que je synthétise.

J'ai l'impression d'avoir tout copié, et j'ai vérifié toutes les instances des éléments synthétisés afin qu'ils soient définitivement là, donc je ne sais pas pourquoi cela se produit.

Quand je mets les lignes qui causent des erreurs dans un cointext de implemeation (i.e. entre @implemtation et @end), je reçois

no declaration of property 'X' found in the interface 

où x est le nom de la chose que je suis la synthèse.

Comment puis-je le mettre dans l'interface? il semblait que j'avais déjà lié tous les composants d'Interface Builder aux bits de code pertinents.

Répondre

0

Vous devez déclarer une propriété dans votre interface

@interface CustomAlertViewController : UIViewController { 
    UIView *alertView; 
    UILabel *label; 
} 
@property (nonatomic, retain) IBOutlet UIView *alertView; <--- Property 
@property (nonatomic, retain) IBOutlet UILabel *label; <--- Property 
+0

merci, cela l'a corrigé :) – espekia

+0

Notez que cette réponse a une erreur potentiellement dangereuse: les propriétés 'alertView' et' label' sont auto-synthétisées en utilisant les balises '_alertView' et' _label' variables d'instance (ivars). Puisque vous déclarez les ivars «alertView» et «label» supplémentaires, vous vous retrouvez avec deux ensembles: ceux commençant par '_' qui supportent les propriétés, et ceux qui ont le même nom que les propriétés elles-mêmes. Pour résoudre ce problème, il suffit de supprimer le segment entre les accolades, car les versions récentes de Xcode/Objective-C synthétisent automatiquement les propriétés et n'ont pas besoin de déclarer spécifiquement l'ivar de support. –

1

propriété @synthesize doit être dans le contexte de la mise en œuvre

implique que vous pas placer correctement entre @implementation et @end. Pouvez-vous poster votre fichier .m

Questions connexes