0

ランダム ラベル ジェネレーターを持つアプリを作成していますが、時々繰り返されることがわかりました。そして、この問題をすぐに解決できるかどうか疑問に思っていましたが、どうすればよいかわかりませんか? どんな助けでも大歓迎です。.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.....

ありがとうございます。

4

1 に答える 1

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 のプロパティです。リセット中は空にします。

于 2013-04-05T03:44:27.513 に答える