2013-10-04 66 views
-1

我創建了一個類來存儲一個數字。該數字通過一個接受int的方法傳入,然後將其保存在NSNumber *對象中。請看下圖:Objective-c返回null

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

結果總是得到正確的值,但是memoryPlus:結果返回null。當我在方法調用中放置斷點時,調試器不會輸入方法,而是移動到方法的末尾。

下面的Memory .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爲零。 「沒有任何事情發生」的頭號原因是你傳遞的信息是零。

+0

這就是我原來的想法,但是我已經把它設置成和其他類一樣,所以我不明白它可能是零。這是我的視圖控制器: – user2847381

+0

我已經將其設置爲與其他類相同的方式,所以我不明白。這是我的視圖控制器:#import「CalculatorViewController.h」 #import「CalculatorBrain.h」 #import「CalculatorMemory.h」 。@interface CalculatorViewController() 。@ property(nonatomic,strong)CalculatorMemory * memory; 。@ property(nonatomic,strong)CalculatorBrain * brain; 。@ end 。@ implementation CalculatorViewController 。@ synthesize display = _display; 。@ synthesisize brain = _brain; 。@ synthesize memory = _memory; – user2847381

+0

當你在這裏註銷'self.memory'的值(或者在調試器中檢查它)時,它是否爲零?你在上面的評論中沒有提到初始化'self.memory'。 –