我正试图从NSMutableArray
(10.00,2.56,4.25,1.95)中选择一个IBAction随机浮点数。
这是我试过的:
在viewDidLoad中:
NSMutableArray *numberPicker = [NSArray arrayWithObjects:
[NSNumber numberWithFloat:10.00],
[NSNumber numberWithFloat:2.56],
[NSNumber numberWithFloat:4.25],
[NSNumber numberWithFloat:1.95],
nil];
在IBAction中:
-(IBAction)buttonPressed: (id)sender{
result = [numberPicker objectAtIndex:arc4random() % [numberPicker count])];
显然这不起作用,我收到错误“从不兼容的类型'id'分配给'浮动'”。 任何想法如何将其中一个数字变成“结果”?
答案 0 :(得分:3)
您只需将一行更改为:
result = [[numberPicker objectAtIndex:arc4random() % [numberPicker count])] floatValue];
答案 1 :(得分:0)
您可以在NSArray上的类别中编写方法randomElement
#import "NSArray+RandomUtils.h"
@implementation NSArray (RandomUtils)
-(id)randomElement
{
if ([self count] < 1) return nil;
NSUInteger randomIndex = arc4random() % [self count];
return [self objectAtIndex:randomIndex];
}
@end
或只使用一个,I wrote.
你会像这样使用它:
#import "NSArray+RandomUtils.h"
使用属性numberPicker @property (retain) NSArray *numberPicker
viewDidLoad:
self.numberPicker = [NSArray arrayWithObjects:
[NSNumber numberWithFloat:10.00],
[NSNumber numberWithFloat:2.56],
[NSNumber numberWithFloat:4.25],
[NSNumber numberWithFloat:1.95],
nil];
在buttonPressed:
使用
result = [(NSNumber *)[self.numberPicker randomElement] floatValue];