我是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]);
}
我不知道错误在哪里。我很确定主要功能有一些错误。以这种方式正确调用方法吗?
答案 0 :(得分:5)
setter必须正确大写。
[myCar setBrand:@"BMW Z4"];
[myCar setYear:2010];
getters默认为属性名称。
NSString *carBrand = [myCar brand];
int carYear = [myCar year];