我正在创建一个具有随机标签生成器的应用程序,但我发现它有时会重复。我想知道我是否可以解决这个问题,但我不知道该怎么做?任何帮助将不胜感激。我已经提供了我的.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.....
先谢谢。
答案 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类型的属性。重置时将其清空。