0

嗨,一个非常简单的应用程序,它通过 2 个文本框接收 2 个参数,然后将它们汇总并显示在名为 result 的标签中。这个想法是通过一个称为大脑的对象来处理它,在后面的部分中我已经给出了代码。问题是 foo 为零,当您单击按钮时,结果一无所获。计划是使用它为我已完成的更大应用程序构建更好的模型视图架构。

 #import "calbrain.h"
    #import "ImmyViewController.h"
    @interface ImmyViewController ()
    @property (nonatomic, strong) calbrain *brain;
    @end
    @implementation ImmyViewController
    @synthesize brain;
    @synthesize num1;
    @synthesize num2;
    @synthesize result;

        -(calbrain *) setBrain
        {
            if (!brain) {
                    brain = [[calbrain alloc] init];

            }

            return brain;
         }

    - (IBAction)kickit:(UIButton *)sender {
                 NSString *number1 = self.num1.text;
                 NSString *number2 = self.num2.text;

            NSString *foo;

            foo = [brain calculating:number1 anddouble:number2];
            self.result.text = foo;
            //  self.result.text = [brain calculating:self.num1.text    anddouble:self.num2.text];

    }
        @end

        @implementation calbrain

    -(NSString *) calculating:(NSString *)number1 anddouble:(NSString *)number2

    {
            double numb1 = [number1 doubleValue];
            double numb2 = [number2 doubleValue];

            double newresult = (numb1 + numb2);


            NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];

            NSString *numberAsString = [numberFormatter stringFromNumber:[NSNumber n     numberWithFloat:newresult]];

            return numberAsString;}
4

3 回答 3

0

我就是这样做的,我得出的结论是大脑的二传手工作不正常

我在需要分配初始化大脑之前放置了 alloc init 代码行,它工作正常,我删除了 setter,

我会回去看看为什么它没有覆盖由属性创建的设置器,但有趣的东西仍然如此。这意味着我可以更改我实际更大的应用程序以拥有更清洁更有条理的架构。

谢谢你的时间。

于 2013-06-19T15:44:52.497 回答
0

viewDidLoad()尝试使用您的 setter 方法初始化您的大脑对象。您必须调用 setter 方法来brain初始化您的对象。

像这样的东西

viewDidLoad()
{
  brain = [self setBrain]; 
  //You can also do this
  brain = [[calbrain alloc] init];
} 

并在您的方法中使用该brain对象。(IBAction)kickit:

希望这可以帮助。

于 2013-06-19T15:53:28.470 回答
0

检查您在功能中的brain使用。我猜你没有初始化。如果不是这种情况,您需要提供更多代码。NSLog(IBAction)kickit:(UIButton *)senderbrain

于 2013-06-19T15:36:36.320 回答