Xcode:随机标签生成器没有重复?

时间:2013-04-05 03:19:47

标签: xcode label generator repeat

我正在创建一个具有随机标签生成器的应用程序,但我发现它有时会重复。我想知道我是否可以解决这个问题,但我不知道该怎么做?任何帮助将不胜感激。我已经提供了我的.h和.m文件。 这是我的.h

#import <UIKit/UIKit.h>
#import "MessageUI/MessageUI.h"
#import "Social/Social.h"
#import "Accounts/Accounts.h"
#import <iAd/iAd.h>


@interface ViewController2 : UIViewController <MFMessageComposeViewControllerDelegate,    ADBannerViewDelegate> {
SLComposeViewController *mySLComposerSheet;
//label that is being randomly generated.
IBOutlet UILabel *label;

}

-(IBAction)randomButton;
-(IBAction)randomButton2;
-(IBAction)SendSMS:(id)sender;
-(IBAction)PostToFacebook:(id)sender;
- (IBAction)SendATweet:(id)sender;

@end

这是我的.m

-(IBAction)randomButton {
int randomText = rand() %151;
switch (randomText) {
    case 0:
        label.text = @"1";
        break;
    case 1:
        label.text = @"2";
        break;
    case 2:
        label.text = @"3";
        break;
    case 3:
        label.text = @"4";
        break;
    case 4:
        label.text = @"5";
        break;
    case 5:
        label.text = @"6";
        break;
    case 6:
        label.text = @"7";
        break;
    case 7:
        label.text = @"";
        break;
    case 8:
        label.text = @"8";
        break;
    case 9:
        label.text = @"9";
        break;
    case 10:
        label.text = @"10";
        break;
    case 11:
        label.text = @"11";
    //ect.....

先谢谢。

1 个答案:

答案 0 :(得分:0)

您的随机数会在某个时间点重复,但您可以存储它们并进行检查。一个所有数字直到150被填充,重置并重新开始。

您可以这样做:

-(IBAction)randomButton {
    NSInteger random=arc4random()%151;
    if ([self.randomNumbers containsObject:@(randomNumbers)]) {
        [self randomButton];
    }
    else{
        [self.randomNumbers addObject:@(random)];
    }
    label.text=[NSString stringWithFormat:@"%d",random+1];
}

此处,randomNumbers是NSMutableArray类型的属性。重置时将其清空。