2009-03-05 8 views
0

Extension du modèle d'utilitaireExtension du modèle d'utilitaire

Je travaille avec le modèle Xcode Utility (Mainside/Flipside) et je dois ajouter un nouvel écran. J'ai ajouté:

docView.xib (copy of FlipsideView.xib) 
docView.m 
docView.h 
docViewController.m 
docViewController.h 

En rootViewController.h j'ajouté:

UINavigationBar *docNavigationBar; 
docViewController *docViewController; 

@property (nonatomic, retain) UINavigationBar *docNavigationBar; 
@property (nonatomic, retain) docViewController *docViewController; 

En rootViewController.m, je les ajouts: synthétisé

@synthesize docNavigationBar; 
@synthesize docViewController; 

j'importer mon .h dans rootViewController.m:

#import "docViewController.h" 

Quand je tente de compiler j'erreur avec:

RootViewController.m:22: error: syntax error before 'docViewController' 

Avertissements:

RootViewController.m:160: warning: property 'docViewController' requires method  '-docViewController' to be defined - use @synthesize, @dynamic or provide a method implementation 

RootViewController.m: 160: avertissement: propriété 'docViewController' exige la méthode 'setDocViewController:' à définir - utilisez @synthesize, @dynamic ou fournissez une implémentation de méthode

Qu'est-ce que j'ai manqué?

Répondre

1

En fait, je pense qu'il voulait dire avoir mis docViewController (c'est nouveau contrôleur de vue, non?). En tout cas, si c'est ce que vous vouliez dire, et non pas FlipsideViewController comme le dit Eric, alors votre problème est que vous l'avez nommé comme la propriété. Mauvaise idée. convention normale Objective-C est en majuscule la première lettre de votre nom de classe, puis les minuscules lorsque vous les utilisez comme des propriétés, etc.

docViewController *docViewController; 

devrait être:

DocViewController *docViewController; 

Il fonctionnera beaucoup mieux ça :)

+0

Merci! Chaque jour j'apprends un peu plus :) – Alan

0

En rootViewController.h, ressemble à votre ligne de déclaration:

docViewController *docViewController; 

devrait être:

FlipsideViewController *docViewController 
+0

Désolé, FlipsideViewController * docViewController était une erreur de copier/coller de ma part. la ligne dans mon .h est: docViewController * docViewController – Alan

+0

ahh, alors le problème est comme Jon décrit ci-dessous - vos noms de classe et de propriété sont les mêmes, donc le compilateur ne peut pas comprendre de quoi vous parlez. Renommez la classe ou renommez la propriété/variable d'instance. –

+0

Merci! Tous triés. – Alan