2010-08-23 16 views
-4

Je suis en train de faire deux sous-classes d'une classe:Classes SuperClasses Sous-classes

// Old code 

- (void)setPaging { 
    [pagingScrollView addSubview:self.ImageScrollView]; 
} 

@interface ImageScrollView : UIScrollView <UIScrollViewDelegate> { 
    UIView  *imageView; 
    NSUInteger  index; 
} 
@property (assign) NSUInteger index; 
- (void)displayTiledImageNamed:(CGPDFPageRef)page size:(CGSize)imageSize; 
@end 

@implementation ImageScrollView 
@synthesize index; 
// ... my methods ... 
@end 

à Changé:

// NEW Code__________________________________________________________* 

- (void)setPaging { 
    if (D == 1) { 
     // error: request for member 'ISVportrate' in something not a 
     // structure or union 
     [pagingScrollView addSubview:self.ISVportrate]; 
    } else if (D == 2) { 
     //error: request for member 'ISVLandscape' in something not a 
     // structure or union 
     [pagingScrollView addSubview:self.ISVLandscape]; 
    } 
} 

@class ISVportrate; 
@class ISVLandscape; 
@interface ImageScrollView : UIScrollView <UIScrollViewDelegate> { 
    UIView  *imageView; 
    NSUInteger  index; 
} 
@property (assign) NSUInteger index; 
- (void)displayTiledImageNamed:(CGPDFPageRef)page size:(CGSize)imageSize; 
@end 
@interface ISVportrate : ImageScrollView {} 
@end 
@interface ISVLandscape : ImageScrollView {} 
@end 

@implementation ISVportrate : ImageScrollView 

// error: property 'index' attempting to use ivar 'index' declared in 
// super class of 'ISVportrate' 
@synthesize index; 

// ... my methods ... 
@end 
@implementation ISVLandscape : ImageScrollView 

// error: property 'index' attempting to use ivar 'index' declared in 
// super class of 'ISVLandscape' 
@synthesize index; 

// ... my methods ... 
@end 

Je ne fais pas ce droit, suis-je? voir ci-dessus J'ai 4 erreurs ... c'est la première fois que j'ai fait un cours ... aidez-moi à comprendre, je pense que j'ai presque raison.

+0

Quel langage de programmation est-ce? Pour l'avenir, s'il vous plaît mentionner le langage de programmation au moins dans les balises, mais de préférence aussi dans le poste de question lui-même. – Timwi

+0

On dirait Objective-C pour moi. –

+0

iphone sdk xcode objc LOL désolé maaaaate! : P – user422241

Répondre

3

Le @synthesize entre dans lede ImageScrollView, et non dans la sous-classe.

self.ISVportrate n'a pas de sens (sauf si vous aviez une méthode appelée -ISVportrate, ce qui n'aurait pas de sens non plus).

Il semblerait que vous n'ayez pas encore assez travaillé sur la programmation orientée objet. Vous voudriez créer une instance appropriée d'une de vos sous-classes et l'assigner comme sous-vue de n'importe quelle vue la contient ...

+2

ok j'ai un peu commencé à boire de la vodka donc je ne suis pas trop sûr maintenant ce que vous dites si vous pouviez élaborer un peu je vais regarder sobre et je suis sûr que je vais l'obtenir. J'apprends littéralement à pas de géant en ce moment. – user422241

+0

donc vous dites que le @synthesize va dans @implementation de ImageScrollView ... cela signifie-t-il que je devrais conserver l'implémentation de ImageScrollView et dupliquer quoi dans ImageScrollView pour ISVportrate & ISVlandscape? parce qu'en ce moment je n'ai pas seule interface pour MISE EN OEUVRE image ScrollView seulement: @implementation ISVportrate: ImageScrollView & @implementation ISVlandscape: ImageScrollView pas: @implementation ImageScrollView. Je ne suis pas sûr de l'index NSInteger ... où doit-il être déclassé etc ... Merci mon pote! – user422241

+2

Allez lire et relire ceci: http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/ObjectiveC/Introduction/introObjectiveC.html Vous devez comprendre les bases de la programmation orientée objet pour réussir. (Vraiment - c'est la meilleure voie à suivre.) – bbum