Reputation: 35
Noob here getting stuck and probably doing something stupid and would appreciate some guidance.
I've declared an NSMutableArray (resultArray) in my .h file, set the @property and @synthesize in the .m file.
In the initWithNibName i'm doing the alloc and init for the array:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) {
// Custom initialization
resultArray = [[NSMutableArray alloc] init];
}
return self;
}
And in one of my methods i'm trying to do an addObject within a for loop, but whatever i try the array does not appear to contain objects (either by using objectAtIndex or count):
for (int i=[resultNumber length]; i>0; i--) {
NSString *theNumberRes = [NSString stringWithFormat:@"%c",[resultNumber characterAtIndex:i-1]];
[resultArray addObject:theNumberRes];
}
NSLog(@"array count: %i", [resultArray count]);
I can step through the code and see the code running through the loop as many times as expected, but the NSLog never gives a result other than 0 (and hovering over the resultArray shows 0 objects at all times. (In brief, each object in the array is supposed to be a character from a string in reverse - e.g. if resultNumber is 12345, the array should store 5,4,3,2,1).
I have seen a number of other questions asking similar questions but they either don't seem to help or i don't understand the answer and didn't want to hijack someone else's question with my question.
Please could someone advise me as to how to get this working?
Upvotes: 0
Views: 236
Reputation: 2440
The question is if the - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
method get called. There is other initialization routines such as
-(id)init;
-(id)initWithCoder:(NSCoder)aDecoder;
If your view is loading from a .xib file there is a possibility, that the last one is called and not the one you are initializing your array in.
Upvotes: 1
Reputation: 24910
The %c
is what is messing you up. Look here
That is for 8-bit unsigned characters. If your string contains utf-8 characters, then this will not work. You could maybe use %C or you should use NSString initWithBytes:length:encoding
Upvotes: 0