2011-07-18 56 views
0

我有一个超类问题:iPhone超级类/子类实施例

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是否会继承Question中包含的属性?

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

您可能还想释放'dealloc'中的属性。 's.qId'应该是有效的,但是'nil'。你做错了吗? –

回答

2

你真的想minmax是的NSString实例?看来float会更合适。

此外,请将()放入(NSString *)以删除警告/错误消息。

最后,这是子类的适当方式。的SliderQuestion实例将继承周围的NSString的的Question类的所有属性和方法(和NSObject以及)

0

通知(和),你可能想要删除这些文件。