Question

I'm a newbie of Objective-C language and I'm trying to understand the basic concepts. I came from Java language so I have already know the principle of OOP programming. Here it is the code I wrote. It's very simple but it doesn't work properly. I have some issues using @property and @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]);
}

I don't know where it's the error. I'm pretty sure there is some mistakes in main function. is it correct call that methods in that way?

Était-ce utile?

La solution

The setters must be capitalized properly.

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

The getters default to the property name.

NSString *carBrand = [myCar brand];
int       carYear  = [myCar year];
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top