Цель C: Как написать экземпляр настраиваемой инициализации

Очень простой вопрос, но у меня есть ошибка в моем коде, на которую можно ответить только одним предположением: мой класс не

Я не очень много писал об Objective C в течение некоторого времени, и я никогда не был действительно хорош, поэтому, пожалуйста, укажите даже на наиболее болезненно очевидные.

Я использую:

ObjectSelectionViewController *length = [[ObjectSelectionViewController alloc] initWithMeasureType:0];
ObjectSelectionViewController *mass = [[ObjectSelectionViewController alloc] initWithMeasureType:1];
ObjectSelectionViewController *volume = [[ObjectSelectionViewController alloc] initWithMeasureType:2];

NSLog(@"%@", [length measurementType]);
NSLog(@"%@", [mass measurementType]);
NSLog(@"%@", [volume measurementType]);

NSLogs возвращают любое измерение был назначен последним, независимо от отдельных аллоки и инициалы.

Вот конструктор класса ObjectSelectionViewController:

#import "ObjectSelectionViewController.h"

@implementation ObjectSelectionViewController

NSString *measurementType;

-(ObjectSelectionViewController*) initWithMeasureType:(int)value
{
switch (value) {
    case 0: // Length
        measureType = @"Length";
        break;

    case 1: // Mass
        measureType = @"Mass";
        break;

    case 2: // Volume
        measureType = @"Volume";
        break;
}
return self;
}

-(NSString*) measurementType
{
return measureType;
}

Спасибо за помощь, это сводит меня с ума!

12
задан Derek 28 June 2011 в 23:24
поделиться