views:

392

answers:

2

Hi,

I'm trying to simply add objects to a mutable array but they WILL NOT insert. I'm not getting errors or anything and I can't figure out whats going on.

In my main delegate file I split an array into 4 separate strings like so.

NSArray *split=[currentParsedCharacterData componentsSeparatedByString:@"|"];
        NSLog([split objectAtIndex:3]);

        NSString *date=[split objectAtIndex:0];
        NSString *venue=[split objectAtIndex:1];
        NSString *event=[split objectAtIndex:2];
        NSString *city=[split objectAtIndex:3];

I've traced out the string values and they are definitely there.

Up next I try to add these string values to mutable arrays

[self.promoTabOptionEvents.dates addObject:date];
        [self.promoTabOptionEvents.venues addObject:venue];
        [self.promoTabOptionEvents.event addObject:event];
        [self.promoTabOptionEvents.city addObject:city];

When I check the arrays in the debugger they are empty. What am I doing wrong?

promoTabOptionEvents class looks like this

import

@interface PromoTabOptionEvents : UIViewController {

    NSString *event_headline;
    NSMutableArray *dates;
    NSMutableArray *venues;
    NSMutableArray *event;
    NSMutableArray *city;

}

@property(nonatomic,retain)NSString *event_headline;
@property(nonatomic,retain)NSMutableArray *dates;
@property(nonatomic,retain)NSMutableArray *venues;
@property(nonatomic,retain)NSMutableArray *event;
@property(nonatomic,retain)NSMutableArray *city;
-(void)applyLabels;
-(id)initWithTabBar;
@end


#import "PromoTabOptionEvents.h"


@implementation PromoTabOptionEvents
@synthesize event_headline;
@synthesize dates;
@synthesize venues;
@synthesize event;
@synthesize city;

-(id) initWithTabBar {
    if ([self init]) {
        //this is the label on the tab button itself
        //self.title = @"Tab1";

        //use whatever image you want and add it to your project
        self.tabBarItem.image = [UIImage imageNamed:@"events.png"];

        // set the long name shown in the navigation bar
        self.navigationItem.title=@"Events";


        CGRect bgframe;
        bgframe.size.width=320; bgframe.size.height=460;
        bgframe.origin.x=0; bgframe.origin.y=0;
        UIImage* bgimage = [UIImage imageNamed:@"eventsbig.png"];
        UIImageView *imagebgview = [[UIImageView alloc] initWithImage: bgimage];
        imagebgview.frame=bgframe;
        imagebgview.contentMode=UIViewContentModeScaleAspectFit;
        self.view.backgroundColor=[UIColor whiteColor];
        [self.view addSubview:imagebgview];


    }
    return self;


}
+1  A: 

Can you add the code where you initialize your NSMutableArray instances? I think you might have forgotten to initialise the arrays and your addObject calls are being swallowed up with no effect.

mmccomb
I havn't initialized the mutablearrays. Does the @synthesize not take care of that? Should I be embarrassed?
dubbeat
Only a little :-) the property definition just defines the pointer nyou need to have an init type call and then do an [[NSMutableArray alloc] init]
AlBlue
thanks a lot :)
dubbeat
A: 

Are you instantiating the properties anywhere, and if so, have you debugged through to verify that is the case? Otherwise you may be sending messages to nil, which will have no effect. Alternatively, you may be doing the array creation after this call, which would make it look like they're not added.

AlBlue