Mam superklasę Pytanie:

import <Foundation/Foundation.h>
#import "Answer.h"

@interface Question : NSObject {
    NSString* qId;
    NSString* qTitle;
    NSString* qNumber;  
    NSString* sectionId;
    NSString* type;
    Answer* answer;
}

@property (nonatomic, retain) NSString* qId;
@property (nonatomic, retain) NSString* qTitle;
@property (nonatomic, retain) NSString* qNumber;
@property (nonatomic, retain) NSString* sectionId;
@property (nonatomic, retain) NSString* type;
@property (nonatomic, retain) Answer* answer;

@end


#import "Question.h"

@implementation Question
@synthesize qId, qTitle, qNumber, sectionId, type, answer;

-(id)init
{
    if (self = [super init])
    {
        // Initialization code here
        answer = [[Answer alloc]init];
    }
    return self;
}

-(void) dealloc{
    [answer release];
    [super dealloc];
}

@end

Mam kilka rodzajów pytań, jednym z przykładów jest pytanie suwakowe. Chcę, aby ta klasa była podklasą Pytanie:

#import <Foundation/Foundation.h>
#import "Question.h"

@interface SliderQuestion : Question {
    (NSString*) min;
    (NSString*) max;
}

@property (nonatomic, retain) NSString* min;
@property (nonatomic, retain) NSString* max;

@end
}

#import "SliderQuestion.h"

@implementation SliderQuestion

@synthesize min, max;

@end

Czy to jest właściwy sposób na podklasy? Czy SliderQuestion odziedziczy właściwości zawarte w pytaniu?

SliderQuestion* s = [[SliderQuestion alloc]init];
NSLog(@"%@", s.qId); //is this valid
0
user559142 18 lipiec 2011, 23:13
Możesz również zwolnić właściwości w dealloc. I s.qId powinien być ważny, ale będzie nil. Czy wystąpiły podczas tego jakieś błędy?
 – 
Deepak Danduprolu
18 lipiec 2011, 23:37

2 odpowiedzi

Najlepsza odpowiedź

Czy naprawdę chcesz, aby min i max były wystąpieniami NSString? Wydaje się, że float byłyby bardziej odpowiednie.

Ponadto usuń () w (NSString *), aby usunąć ostrzeżenie/komunikat o błędzie.

Wreszcie jest to odpowiedni sposób na podklasy. Wystąpienie SliderQuestion odziedziczy wszystkie właściwości i metody klasy Question (oraz NSObject)

2
PengOne 18 lipiec 2011, 23:19

Zwróć uwagę na ( i ) wokół NSStrings, możesz je usunąć.

0
Antwan van Houdt 18 lipiec 2011, 23:20