使用@property和@synthesize的任何错误

时间:2013-08-01 14:09:31

标签: objective-c synthesize

我是Objective-C语言的新手,我正在尝试理解基本概念。我来自Java语言,所以我已经知道OOP编程的原理。这是我写的代码。它很简单,但不能正常工作。我在使用@property@synthesize

时遇到了一些问题
#import <Foundation/Foundation.h>

@interface Car: NSObject

@property(nonatomic,retain) NSString *brand;
@property int year;

@end //Car Interface


#import "Car.h"

@implementation Car

@synthesize brand;
@synthesize year;

@end //Car Implementation


#import "Car.h"

int main (int argc, const char * argv[])
{
    int y;

    //Creo un nuovo oggetto
    Car *myCar = [[Car alloc] init];

    //Setto i parametri
    [myCar setbrand: @"BMW Z4"];

    NSLog (@"Inserisci data modello: ");
    scanf (" %i", &y); //E' buona norma lasciare uno spazio
    [myCar setyear: y];

    //Stampo a video i dati
    NSLog(@"Marca: %@ Anno: %i", [myCar setbrand], [myCar setyear]);
}

我不知道错误在哪里。我很确定主要功能有一些错误。以这种方式正确调用方法吗?

1 个答案:

答案 0 :(得分:5)

setter必须正确大写。

[myCar setBrand:@"BMW Z4"];
[myCar setYear:2010];

getters默认为属性名称。

NSString *carBrand = [myCar brand];
int       carYear  = [myCar year];