3 Stimmen

Objekte werden nicht zu NSMutableArray hinzugefügt Objektiv -C

Ich versuche, einfach Objekte zu einem veränderbaren Array hinzuzufügen, aber sie werden nicht eingefügt. Ich bekomme keine Fehler oder irgendetwas und ich kann nicht herausfinden, was los ist.

In meiner Hauptdelegatendatei habe ich ein Array in 4 separate Strings aufgeteilt, wie folgt.

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];

Ich habe die Zeichenkettenwerte ermittelt und sie sind definitiv vorhanden.

Als Nächstes versuche ich, diese String-Werte zu veränderbaren Arrays hinzuzufügen

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

Wenn ich die Arrays im Debugger überprüfe, sind sie leer. Was mache ich falsch?

Die Klasse promoTabOptionEvents sieht wie folgt aus

importieren

@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;

}

7voto

mmccomb Punkte 13068

Können Sie den Code hinzufügen, wo Sie Ihre NSMutableArray-Instanzen initialisieren? Ich denke, Sie könnten vergessen haben, die Arrays zu initialisieren und Ihre addObject-Aufrufe werden ohne Wirkung verschluckt.

1voto

AlBlue Punkte 21966

Instanzieren Sie die Eigenschaften irgendwo, und wenn ja, haben Sie durch Debuggen zu überprüfen, dass der Fall ist? Andernfalls senden Sie möglicherweise Nachrichten an nil, was keine Wirkung hat. Alternativ können Sie die Array-Erstellung nach diesem Aufruf tun, die es aussehen würde, wie sie nicht hinzugefügt werden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X