有人可以告诉我如何从数组中调用元素并将其分配给变量吗?
在我的viewdidload中,我创建一个随机数字数组。
- (void)viewDidLoad {
int n = 40;
NSMutableArray *numbers = [NSMutableArray array];
for (int i = 1; i <= n; i++) {
[numbers addObject:[NSNumber numberWithInt:i]];
}
NSMutableArray *result = [NSMutableArray array];
while ([numbers count] > 0) {
int r = arc4random() % [numbers count];
NSNumber *randomElement = [numbers objectAtIndex:r];
[result addObject:randomElement];
[numbers removeObjectAtIndex:r];
}
NSLog(@"%@", result);
NSLog (@"The 4th integer is: %@", [result objectAtIndex:3]);
}
在另一部分中,我想调用这些值。 例如
-(void)nextpiece{
countnumber=2;
count=[result objectAtIndex:countnumber];
}
,其中countnumber和count为int。问题是它无法识别结果数组。错误是“使用未声明的标识符'结果'” 有人可以提供解决方案吗?非常感谢
答案 0 :(得分:2)
问题是因为result
是viewDidLoad
内部的局部变量,您只能在viewDidLoad
内部使用它。如果您想要一个既可以在viewDidLoad
和nextpiece
中使用的变量,则可以使用。我建议将result
设置为您课程的属性。
例如。
@interface YourViewController ()
@property (nonatomic, strong) NSMutableArray* result;
@end
@implementation YourViewController
- (void)viewDidLoad {
int n = 40;
NSMutableArray *numbers = [NSMutableArray array];
for (int i = 1; i <= n; i++) {
[numbers addObject:[NSNumber numberWithInt:i]];
}
_result = [NSMutableArray array];
while ([numbers count] > 0) {
int r = arc4random() % [numbers count];
NSNumber *randomElement = [numbers objectAtIndex:r];
[_result addObject:randomElement];
[numbers removeObjectAtIndex:r];
}
NSLog(@"%@", _result);
NSLog (@"The 4th integer is: %@", [_result objectAtIndex:3]);
}
-(void)nextpiece{
int countnumber = 2;
NSNumber *count = [_result objectAtIndex:countnumber];
}
@end