gpt4 book ai didi

objective-c - NSInteger 在一个函数上无法正常工作,但在其他函数上却可以正常工作?

转载 作者:行者123 更新时间:2023-12-03 16:26:13 24 4
gpt4 key购买 nike

嘿,我正在尝试学习 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 时,程序都会崩溃。所有其他功能都可以正常工作,但它们彼此相同。为什么会发生这种情况?有人可以帮帮我吗?我预先感谢您。

最佳答案

您正在使用 NSInteger* (指向 NSInteger 的指针)来存储应该简单地为 NSInteger 的变量。请尝试以下操作:

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

关于objective-c - NSInteger 在一个函数上无法正常工作,但在其他函数上却可以正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6837484/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com