7

I have an NSMutableArray

@interface DetailViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> {

NSMutableArray *reponses;
}
@property (nonatomic, retain) NSMutableArray *reponses;

@end

and i'm trying to add in my array NSInteger object:

@synthesize reponses;



NSInteger val2 = [indexPath row];
[reponses addObject:[NSNumber numberWithInteger:val2]];
NSLog(@"the array is %@ and the value is %i",reponses, val2);

it won't work the object was not added to the array, this is what console shows:

the array is (null) and the value is 2
pad
  • 41,040
  • 7
  • 92
  • 166
Hamdi-Lachaal
  • 151
  • 1
  • 3
  • 8

3 Answers3

9

@Omz: is right. Make sure you have the array allocated and initialized. Please check the following code

NSMutableArray *array = [[NSMutableArray alloc] init];
NSInteger num = 7;
NSNumber *number = [NSNumber numberWithInt:num];
[ar addObject:number];
NSLog(@"Array %@",array);

I have checked this and it works. If array is no longer needed make sure you release it.

visakh7
  • 26,380
  • 8
  • 55
  • 69
  • for new folks (me), to convert NSNumber back to NSInteger (when retrieving information from the array), 'NSInteger num = [number integerValue];' (thank you 7KV7) – tmr Apr 04 '15 at 06:18
4

You're not initializing your array, so it's still nil when you're trying to add to it.

self.responses = [NSMutableArray array];
//now you can add to it.
omz
  • 53,243
  • 5
  • 129
  • 141
2

You have not initialized the responses array. In your code, may be viewDidLoad, do:

reponses = [[NSMutableArray alloc] init];

Then add the object to your array.

NSInteger val2 = [indexPath row];
[self.reponses addObject:[NSNumber numberWithInteger:val2]];

That should work.

Bani Uppal
  • 866
  • 9
  • 17