随机显示一个按钮上的字母,麻烦我的objective-c代码

 曾那么执着o的厮守 发布于 2023-02-08 09:10

我正在尝试创建一个随机显示按钮上的字母的程序.我希望能够单击按钮(开始),程序将生成一个随机字母作为按钮的标题(letter1).

每次运行此程序时,它立即崩溃:

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

-(IBAction)start:(id)sender{

int randomNumber = rand() % 25;

switch (randomNumber){
    case 0:
        [letter1 setTitle:@"A" forState:UIControlStateNormal];
        break;
    case 1:
        [letter1 setTitle:@"B" forState:UIControlStateNormal];
        break;
    case 2:
        [letter1 setTitle:@"C" forState:UIControlStateNormal];
        break;
    case 3:
        [letter1 setTitle:@"D" forState:UIControlStateNormal];
        break;
    case 4:
        [letter1 setTitle:@"E" forState:UIControlStateNormal];
        break;
    case 5:
        [letter1 setTitle:@"F" forState:UIControlStateNormal];
        break;
    case 6:
        [letter1 setTitle:@"G" forState:UIControlStateNormal];
        break;
    case 7:
        [letter1 setTitle:@"H" forState:UIControlStateNormal];
        break;
    case 8:
        [letter1 setTitle:@"I" forState:UIControlStateNormal];
        break;
    case 9:
        [letter1 setTitle:@"J" forState:UIControlStateNormal];
        break;
    case 10:
        [letter1 setTitle:@"K" forState:UIControlStateNormal];
        break;
    case 11:
        [letter1 setTitle:@"L" forState:UIControlStateNormal];
        break;
    case 12:
        [letter1 setTitle:@"M" forState:UIControlStateNormal];
        break;
    case 13:
        [letter1 setTitle:@"N" forState:UIControlStateNormal];
        break;
    case 14:
        [letter1 setTitle:@"O" forState:UIControlStateNormal];
        break;
    case 15:
        [letter1 setTitle:@"P" forState:UIControlStateNormal];
        break;
    case 16:
        [letter1 setTitle:@"Q" forState:UIControlStateNormal];
        break;
    case 17:
        [letter1 setTitle:@"R" forState:UIControlStateNormal];
        break;
    case 18:
        [letter1 setTitle:@"S" forState:UIControlStateNormal];
        break;
    case 19:
        [letter1 setTitle:@"T" forState:UIControlStateNormal];
        break;
    case 20:
        [letter1 setTitle:@"U" forState:UIControlStateNormal];
        break;
    case 21:
        [letter1 setTitle:@"V" forState:UIControlStateNormal];
        break;
    case 22:
        [letter1 setTitle:@"W" forState:UIControlStateNormal];
        break;
    case 23:
        [letter1 setTitle:@"X" forState:UIControlStateNormal];
        break;
    case 24:
        [letter1 setTitle:@"Y" forState:UIControlStateNormal];
        break;
    case 25:
        [letter1 setTitle:@"Z" forState:UIControlStateNormal];
        break;
    default:
        [letter1 setTitle:@"&" forState:UIControlStateNormal];
        break;

   }



}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

 - (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

任何帮助,将不胜感激!!!!

1 个回答
  • 您没有提供足够的信息来解释崩溃.但是你可以通过消除switch语句来大大缩短你的代码

    -(IBAction)start:(id)sender
    {
        int randomValue = 'A' + arc4random_uniform(('Z' + 1) - 'A');
        [letter1 setTitle: [NSString stringWithFormat:@"%c", randomValue]) forState:UIControlStateNormal];
    }
    

    2023-02-08 09:15 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有