Я изучаю Наследование Objective-C, и моя программа теряется в рекурсивном цикле и не выйдет. Он зависает при вызове функции геттера.Вызов функции застревание в рекурсивном цикле и никогда не приходит
Я использую XCode версии: Версия 6.2 (6C101)
Моя программа приведена ниже
Vehicle.h
#ifndef exercise_2_Vehicle_h
#define exercise_2_Vehicle_h
#import <Foundation/Foundation.h>
@interface Vehicle : NSObject
@property float speed;
-(void) start;
-(void) stop;
-(void) park;
@end
#endif
Vehicle.m
#import "Vehicle.h"
@implementation Vehicle
-(void) setSpeed:(float)speed {
self.speed = speed;
}
-(float) speed {
return self.speed;
}
-(void) start {
NSLog(@"Starting the vehicle");
}
-(void) stop {
NSLog(@"Stopping the vehicle");
}
-(void) park {
NSLog(@"Parking the vehicle");
}
@end
Car.h
#ifndef exercise_2_Car_h
#define exercise_2_Car_h
#import "Vehicle.h"
@interface Car : Vehicle
@property (nonatomic) NSString* make;
-(Car*) initMake: (NSString*) make;
-(NSString*) make;
@end
#endif
Car.m
#import "Car.h"
@implementation Car
-(Car*) initMake:(NSString *)make {
self = [super init];
if (self) {
self.make = make;
}
return self;
}
-(NSString*) make {
return self.make;
}
@end
main.m
#import <Foundation/Foundation.h>
#import "Car.h"
#import "Vehicle.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
// insert code here...
Car* car = [[[Car alloc] init] initMake: @"Camry"];
//[car setSpeed:45];
NSLog(@"The model initialized is ");
[car make];
// [car speed];
}
return 0;
}
Автомобиль * Автомобиль = [[[Автоприбор] init] initMake: @ "Camry"]; измените это на Car * car = [[Car alloc] initMake: @ «Camry»]; попробуйте это – Spynet
@Spynet Спасибо. Мне было интересно, что я делаю неправильно. – Kartik