could someone please tell me how to call an element from an array and assigning it to a variable?
In my viewdidload I create a random array of numbers.
- (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]);
}
In another section I would like to call those values. For example
-(void)nextpiece{
countnumber=2;
count=[result objectAtIndex:countnumber];
}
with countnumber and count being int. The problem is it doesn't recognize the result array. Error is "Use of undeclared identifier 'result'" Could someone provide a solution? Thank you very much
Problem is because result
is a local variable inside viewDidLoad
and you can only use it inside viewDidLoad
. If you want a variable which can be used in both viewDidLoad
and nextpiece
. I suggest to make result
as a property of your class.
For example.
@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