【发布时间】:2011-07-27 06:43:23
【问题描述】:
嘿,我正在尝试学习 Objective-C 和 Cocoa Dev,但是在制作带有 GUI 的计算器应用程序时遇到了问题。这是我的 AppController 类的两个文件
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
除了添加之外,一切正常。由于某种原因,每当我尝试使用 Add 时,程序就会崩溃。所有其他功能都可以正常工作,但它们彼此相同。为什么会这样?有人可以帮帮我吗?提前谢谢你。
【问题讨论】:
标签: objective-c cocoa