2013-10-04 3 views
-1

Я создал класс для хранения номера. Число передается через метод, который принимает int, а затем удерживает его в объекте NSNumber *. См. Ниже:Objective-c return null

- (IBAction)memoryPlus:(UIButton *)sender { 
    int result = [self.display.text intValue]; 
    [self.memory memoryPlus:result]; 
} 

Результат всегда получает правильное значение, однако memoryPlus: result возвращает null. Когда я помещаю точку останова в вызове метода, отладчик не вводит метод, а перемещается в конец метода.

Файл .m. Ниже должен принимать значение результата и назначать его в calculatorMemoryString, но этого не происходит.

@interface CalculatorMemory() 
@property(nonatomic,strong)NSString *calculatorMemoryString; 
@end 

@implementation CalculatorMemory 

@synthesize calculatorMemoryString; 

-(void)memoryPlus:(int)memoryValue{ 
    calculatorMemoryString=[NSString stringWithFormat:@"%d",memoryValue]; 
} 

-(NSString *)memoryRecall{ 
    return calculatorMemoryString; 
} 

-(void)memoryClear{ 
    NSLog(@"CalculatorMemory: memoryClear called"); 
} 

@end 

Любая помощь оценена!

+0

Показать код, где вы создаете экземпляр класса 'self.memory' – Aaron

+0

Узнайте, как отлаживать - пожалуйста! Когда вы обнаружите плохую ценность, проследите ее до источника. –

ответ

2

Это означает, что self.memory is nil. Причина номер один в том, что «ничего не происходит» - это то, что вы отправляете сообщения.

+0

Это то, что я изначально думал, однако я установил его так же, как и другие классы, поэтому я не понимаю, как это может быть ноль. Это мой контроллер представления: – user2847381

+0

Я установил его так же, как и другие классы, поэтому я не понимаю. Это мой контроллер: #import «CalculatorViewController.h» #import «CalculatorBrain.h» #import «CalculatorMemory.h» . @ Interface CalculatorViewController() . @ Property (неатомный, сильный) CalculatorMemory * memory; . @ Свойство (неатомное, сильное) CalculatorBrain * brain; . @ End . @ Реализация КалькуляторViewController . @ Synshize display = _display; . @ Синтезировать мозг = _brain; . @ Синтезировать память = _memory; – user2847381

+0

Когда вы выходите из значения 'self.memory' здесь (или проверяете его в отладчике), это нуль или нет? Ничто из приведенного выше комментария не инициализируется 'self.memory'. –