Пример iPhone Super / SubClass - PullRequest
0 голосов
/ 18 июля 2011

У меня есть суперкласс Вопрос:

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

У меня есть несколько типов Вопросов, один пример - Вопрос Слайдера. Я хочу, чтобы этот класс был подклассом Вопрос:

#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

Это правильный способ подкласса? Будет ли SliderQuestion наследовать свойства, содержащиеся в Вопросе?

SliderQuestion* s = [[SliderQuestion alloc]init];
NSLog(@"%@", s.qId); //is this valid

Ответы [ 2 ]

2 голосов
/ 18 июля 2011

Вы действительно хотите, чтобы min и max были экземплярами NSString? Кажется, что float s будет более подходящим.

Кроме того, удалите () в (NSString *), чтобы удалить предупреждение / сообщение об ошибке.

Наконец, это подходящий способ для подкласса. Экземпляр SliderQuestion будет наследовать все свойства и методы класса Question (а также NSObject)

0 голосов
/ 18 июля 2011

Обратите внимание на (и) вокруг строк NSS, вы можете удалить их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...