方法返回0而不是我赋给变量的数字

cab*_*ret 2 iphone random objective-c ios

我正在尝试降低iOS编程的基础知识.当我点击按钮时,我有一个显示随机数的应用程序..至少,这就是我想要做的.但是,它似乎没有成功.

我有以下基本方法,应该将文本设置myLabel为返回值generateRandomNumber.但是,它总是返回0.我认为我在这里使用的语法是正确的,因为它适用于注释部分:

-(IBAction)myBtnPressed:(UIButton *)sender
{
    //[myLabel setText:@"test"];
    //[myLabel setText:[NSString stringWithFormat:@"%g / 15", 3.14]];
    [myLabel setText:[NSString stringWithFormat:@"%g / 15", [myModel generateRandomNumber]]];
}
Run Code Online (Sandbox Code Playgroud)

最后一行设置要显示的标签0/15.但是,在我的模型中,我有以下代码(现在为'static'):

-(double)generateRandomNumber
{
    randomNumber = 1.34;
    return randomNumber;
}
Run Code Online (Sandbox Code Playgroud)

它没有返回1.34,我不明白为什么它没有.有人可以解决这个问题吗?

更新 这是我的viewcontroller.m文件的代码:

#import "myViewController.h"

@implementation myViewController

    -(MyModel *)myModel
    {
        if (! myModel) {
            myModel = [[MyModel alloc] init];
        }

        return myModel;
    }


    -(IBAction)myBtnPressed:(UIButton *)sender
    {
        [myLabel setText:[NSString stringWithFormat:@"%g / 15", [myModel generateRandomNumber]]];
    }

    @end
Run Code Online (Sandbox Code Playgroud)

另外,最后,我想generateRandomNumber在0到15之间返回一个随机数.我该怎么做?会像一条简单的线路:

int x = arc4random() % 16;

为此工作?或者我是否必须以某种方式播种它,因此在运行应用程序时它并不总是返回相同的值?

提前致谢.

Jer*_*myP 5

它没有返回1.34,我不明白为什么它没有.有人可以解决这个问题吗?

几乎可以肯定,您尚未分配和初始化myModel对象.您可以发送消息而nil不会崩溃,但返回值将为0.

arc4random() 不需要种子.

编辑

您的初始化代码看起来没问题myBtnPressed:,但您不需要在方法中调用int

[myLabel setText:[NSString stringWithFormat:@"%g / 15", [[self myModel] generateRandomNumber]]];
Run Code Online (Sandbox Code Playgroud)