Stunner
Stunner

Reputation: 12194

Not Able to Add Object to NSMutableArray

Hey guys, I have this code within a function inside a class that is a subclass of NSOperation:

//...
@implementation DataLoader

@synthesize addedAnnotations;
@synthesize addedOverlays;
@synthesize loaderFunc;
@synthesize DLDelegate;    
//...
-(id)initWithFunction:(LoaderFunc)func withDelegate:(id)delegate {
    if (self = [super init]) {
        self.addedOverlays = nil;
        self.addedAnnotations = nil;
        self.loaderFunc = func;
        self.DLDelegate = delegate;
        return self;
    }
    return nil;
}
//...
//inside a function
    for (ParkingAnnotations *annotation in fetchedObjects) {
        ParkingAnnotation *parkingAnnot = [[ParkingAnnotation alloc] init];
        workingCoordinate.latitude = [[annotation latitude] doubleValue];
        workingCoordinate.longitude = [[annotation longitude] doubleValue];
        [parkingAnnot setCoordinate:workingCoordinate];
        [parkingAnnot setTitle:[annotation valueForKey:@"lotName"]];
        [parkingAnnot setAnnotationType:[annotation iconTypeRaw]];

        [self.addedAnnotations addObject:parkingAnnot];//parkingAnnot not added to array here
        [parkingAnnot release];
    }
//...

Added annotations is an NSMutable array, I have been walking through this code with the debugger and for some reason the parkingAnnot object is not getting added to the array. Here is the relevant header code for the class:

//...    
@interface DataLoader : NSOperation {
        NSMutableArray *addedAnnotations;
    NSMutableArray *addedOverlays;
    LoaderFunc loaderfunc;
    id <DataLoaderProtocol> DLDelegate;
}

@property (nonatomic, retain) NSMutableArray* addedAnnotations;
@property (nonatomic, retain) NSMutableArray* addedOverlays;
@property (nonatomic) LoaderFunc loaderFunc;
@property (assign) id DLDelegate;
//...

It is an astonishing problem because the function in which I am experiencing the problem was copied from my MapViewController and is essentially the same, but instead of mapView addAnnotation: I am adding to an NSMutable array instead. Any idea of what's up? Thanks in advance!

Upvotes: 2

Views: 962

Answers (1)

iceydee
iceydee

Reputation: 1039

Where are you actually instantiating the addedAnnotations array? I only see it being assigned nil in your initialize function, maybe it should change to something like:

self.addedAnnotations = [[[NSMutableArray alloc] init] autorelease];

Upvotes: 4

Related Questions