【发布时间】:2014-03-08 21:03:47
【问题描述】:
我想这真的很简单,但我找不到解决这个问题的方法......
@property (strong, nonatomic) NSMutableArray *randomQuestionNumberArray;
我有一个像这样开头的方法
- (int)showQuestionMethod:(int)number;
在这种方法中,我有一个循环,我用数字填充NSMutableArray,然后随机播放。
//Creating random questions array
_randomQuestionNumberArray = [[NSMutableArray alloc] init];
for (int i = 0; i < numberOfQuestions; i++) {
[_randomQuestionNumberArray addObject:[NSNumber numberWithInt:i]];
}
//Shuffling the array
NSUInteger count = [_randomQuestionNumberArray count];
for (NSUInteger i = 0; i < count; ++i) {
// Select a random element between i and end of array to swap with.
int nElements = count - i;
int n = (arc4random() % nElements) + i;
[_randomQuestionNumberArray exchangeObjectAtIndex:i withObjectAtIndex:n];
}
这很好用。假设它会随机播放 4、5、1、3、6、0、2 等数字。
现在在 viewDidLoad 中,我尝试使用第一个值 _randomQuestionNumberArray 调用方法 showQuestionMethod,在这种情况下应该是 4。
[self showQuestionMethod:[_randomQuestionNumberArray[0] intValue]];
问题是该方法一直传递 0 的值,而它应该是 4,但 NSLog(@"first value is %@", _randomQuestionNumberArray[0]) 返回正确的值 4。
如何解决这个问题并将 id 类型转换为 int?
【问题讨论】:
-
NSLog(@"first value is %i", [_randomQuestionNumberArray[0] intValue]);显示了什么? -
它应该显示为 4,但我在调用方法时仍然无法传递此值
-
请勿转发您的问题。
标签: ios objective-c