随机文本生成器(每次都是相同的顺序)

时间:2012-10-11 12:02:34

标签: text random label ios6 xcode4.5

即时创建一个应用程序生成随机文本,当我按下按钮时,我有代码,它工作正常,但有一些事情,我想改变,当我运行应用程序,我按下它显示的按钮:

“好吧,hiya,yoo,yoo,你好,好吧,Hiya,yoo,yoo,hiya,你好,你好,好吧”

这是前13次点击,每当我进入应用程序时都是订单。基本上我不希望他们连续两次重复,我希望他们在启动应用程序时以不同的顺序启动。

我希望能够写出至少2行文字,但我如何使用Label做到这一点?

继承我的代码:

·H

@interface ViewController1 : UIViewController  {

    IBOutlet UILabel *textview;

}

-(IBAction)random;

的.m

@interface ViewController1()

@end

@implementation ViewController1

- (IBAction)随机{

int text = rand() % 5;

switch (text) {

    case 0:

        textview.text = @"Hello";

        break;

    case 1:

        textview.text = @"hi";

        break;

    case 2:

        textview.text = @"alright";

        break;

    case 3:

        textview.text = @"yoo";

        break;

    case 4:

        textview.text = @"hiya";

        break;

    default:

        break;

}

}

谢谢你:)

2 个答案:

答案 0 :(得分:1)

使用函数arc4random()代替random()。您遇到的问题是因为函数rand需要在调用之前设置种子。这是rand在后​​台使用的随机数生成器的起始值。当您不使用自己的种子时,它始终具有相同的默认值,因此您始终获得相同的随机值序列。使用arc4random时,无需设置种子。有关详细信息,请参阅this blog postdocumentation

#include <stdlib.h>
...
int text = arc4random() % 5;

答案 1 :(得分:0)

@interface ViewController1 ()

@end

@implementation ViewController1



-(IBAction)random {

    // Pseudocode here
    if (srand() not yet called) then
      srand();
    endif
    // end Pseudocode

    // You are better to put the call to srand() somewhere 
    // it will only ever be called once, rather than having
    // to mess around with an if-statement.

    int text = arc4random() % 50;

    switch (text) {

        case 0:

            textview.text = @"My text here";

            break;

   default:

            break;

    }

}