使用构造函数“缺少方法声明的上下文”

时间:2013-09-18 04:31:54

标签: objective-c

我在构建项目后只得到了这个失败。 我正在使用XCode 4.6.3

class.m

#import "Car.h"
//constructor
-(id)init          //<----- ***MISSING CONTEXT FOR METHOD DECLARATION***
{
    self = [super init];
    if(self){
        self.brand = @"";
        self.model = @"";
        self.vin = 0;
    }
    return self;

class.h不包含任何错误。

#import <Foundation/Foundation.h>

@interface Car : NSObject
{
    NSString *brand, *model;
    NSNumber *vin;
}
    //set
-(void) setBrand:(NSString *) newBrand;
-(void) setModel:(NSString *) newModel;
-(void) setVIN:(NSNumber *) newVIN;
    //get
-(NSString *) getBrand;
-(NSString *) getModel;
-(NSNumber *) getVIN;
    //methods
-(void) accelerateTo100;
-(void) fuelConsuming;
-(void) hardStop;
@end

你能帮我解决这个问题。非常感谢。

3 个答案:

答案 0 :(得分:1)

与Car类相关的方法的实现总是包含在@implementation Car中,并以@end结束。您正在声明并实现方法,而不告诉编译器它们属于哪个类。

答案 1 :(得分:1)

检查@implementation部分中是否没有#import“...”。

答案 2 :(得分:0)

答案是@CodaFi解释的。试试这个

#import "Car.h"
@implementation Car

-(id)init          
{
    self = [super init];
    if(self){

        [self setBrand : @""];
        [self setMode1 : @""];
        [self setVIN : @""];
          }
    return self;
}
@end