2011-07-26 39 views
2

嘿,我正在嘗試學習Objective-C和Cocoa Dev,但我在使用GUI創建Calculator App時遇到了問題。這裏是我的兩個文件我的AppController類NSInteger在一個函數上不能正常工作,但與其他人一起工作?

AppController.h

#import <Cocoa/Cocoa.h> 

@interface AppController : NSObject 
{ 
    IBOutlet NSTextField *textField1; 
    IBOutlet NSTextField *textField2; 
    IBOutlet NSTextField *resultsField; 
} 

- (IBAction)add:(id)sender; 
- (IBAction)multiply:(id)sender; 
- (IBAction)subtract:(id)sender; 
- (IBAction)divide:(id)sender; 

@end 

AppController.m

#import "AppController.h" 

int addx(int x, int y) 
{ 
    return (x+y); 
} 

int subtractx(int x, int y) 
{ 
    return (x-y); 
} 

int multiplyx(int x, int y) 
{ 
    return (x*y); 
} 

int dividex(int x, int y) 
{ 
    return (x/y); 
} 


@implementation AppController 

- (void) awakeFromNib 
{ 
    [textField1 setStringValue:@"Enter first value here"]; 
    [textField2 setStringValue:@"Enter second value here"]; 
    [resultsField setStringValue:@"Results come out here"]; 
} 

- (IBAction)add:(id)sender 
{ 
    NSInteger *value1; 
    value1 = [textField1 integerValue]; 

    NSInteger *value2; 
    value2 = [textField2 integerValue]; 

    [resultsField setIntegerValue:addx(value1, value2)]; 
} 

- (IBAction)subtract:(id)sender 
{ 
    NSInteger *value1; 
    value1 = [textField1 integerValue]; 

    NSInteger *value2; 
    value2 = [textField2 integerValue]; 

    [resultsField setIntegerValue:subtractx(value1, value2)]; 
} 

- (IBAction)multiply:(id)sender 
{ 
    NSInteger *value1; 
    value1 = [textField1 integerValue]; 

    NSInteger *value2; 
    value2 = [textField2 integerValue]; 

    [resultsField setIntegerValue:multiplyx(value1, value2)]; 
} 

-(IBAction)divide:(id)sender 
{ 
    NSInteger *value1; 
    value1 = [textField1 integerValue]; 

    NSInteger *value2; 
    value2 = [textField2 integerValue]; 

    [resultsField setIntegerValue:dividex(value1, value2)]; 
} 


@end 

一切工作正常,除了添加。出於某種原因程序崩潰,每當我嘗試使用添加。所有其他功能都正常工作,但它們彼此完全相同。這是爲什麼發生?有人可以幫幫我嗎?我提前謝謝你。

回答

6

您正在使用NSInteger*(指向NSInteger的指針)來存儲應該只是NSInteger的變量。請嘗試以下操作:

- (IBAction)add:(id)sender 
{ 
    NSInteger value1 = [textField1 integerValue]; 
    ... 
} 
+0

感謝它的完美運作!^_ ^ – BigFerdes

相關問題