2013-08-01 57 views
-1

我是Objective-C語言的新手,我試圖理解基本概念。我來自Java語言,所以我已經知道OOP編程的原理。這是我寫的代碼。這很簡單,但它不能正常工作。我一直在使用@property@synthesize使用@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

http://stackoverflow.com/questions/2032826/property-synthesize – stosha

+0

你不需要在Xcode的最新版本做@synthesize了。編譯器將隱含地合成一個下劃線加前綴的實例變量。 –

+0

我使用GNUstep編程,而不是Xcode。也許有一些區別? – Mazzy

回答

5

設置者必須正確使用大寫。

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

獲得者默認爲屬性名稱。

NSString *carBrand = [myCar brand]; 
int  carYear = [myCar year]; 
相關問題