-1

我是 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]);
}

我不知道是哪里出错了。我很确定 main 函数中存在一些错误。以这种方式调用这些方法是否正确?

4

1 回答 1

5

设置器必须正确大写。

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

getter 默认为属性名称。

NSString *carBrand = [myCar brand];
int       carYear  = [myCar year];
于 2013-08-01T14:19:19.627 回答