lav*_*lle 0 random objective-c arc4random ios
构建了一个iPhone应用程序,当按下按钮时,该应用程序会为标签生成随机数.
它运行正常,但我放的任何值似乎都不限制生成的随机数的值.它始终是9位数.
-(IBAction)genRandnum:(id)sender {
NSNumber *randomNumber = [NSNumber numberWithInt: (arc4random() % 5) + 1];
NSNumber *randomLabeltxt = [[NSString alloc] initWithFormat:@"It worked!", randomNumber];
randLabel.text = [NSString stringWithFormat: @"%d", randomLabeltxt];
[randomLabeltxt release];
}
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我在%符号后面放了5个,但它产生了9位数字.
NSNumber是一个Objective-C对象,因此您应该使用%@
它来显示它.%d
显示一个9位数字,因为它是该NSNumber的地址.
NSString与NSNumber不同.
正确和简化的代码应如下所示:
int randomNumber = (arc4random() % 5) + 1;
// no need to create an NSNumber if you do not need to store it into an NS container.
randLabel.text = [NSString stringWithFormat:@"It worked! %d", randomNumber];
// no need to create an intermediate NSString variable.
// you can directly assign the string to the label's text.
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
956 次 |
最近记录: |