Hi guys, thatโs why I get these inconsistent errors when starting my program, only about 50% of the time I make these errors and, apparently, different points of my program. Here is the console output:
2011-05-11 14:22:03.926 Parking[20611:1903] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSMutableArray insertObject:atIndex:]: attempt to insert nil object at 10' *** Call stack at first throw: ( 0 CoreFoundation 0x011afbe9 __exceptionPreprocess + 185 1 libobjc.A.dylib 0x013045c2 objc_exception_throw + 47 2 CoreFoundation 0x011a97f1 -[__NSArrayM insertObject:atIndex:] + 225 3 CoreFoundation 0x011a4c44 -[__NSArrayM addObject:] + 68 4 Parking 0x000182fd -[DataLoader loadOverlaysFromStore] + 1521 5 Parking 0x00017b76 -[DataLoader main] + 64 6 Foundation 0x00c5ebd2 -[__NSOperationInternal start] + 747 7 Foundation 0x00c5e826 ____startOperations_block_invoke_2 + 106 8 libSystem.B.dylib 0x9488c024 _dispatch_call_block_and_release + 16 9 libSystem.B.dylib 0x9487e2f2 _dispatch_worker_thread2 + 228 10 libSystem.B.dylib 0x9487dd81 _pthread_wqthread + 390 11 libSystem.B.dylib 0x9487dbc6 start_wqthread + 30 ) terminate called after throwing an instance of 'NSException'
and
2011-05-11 14:16:45.171 Parking[20500:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSMutableArray insertObject:atIndex:]: attempt to insert nil object at 2' *** Call stack at first throw: ( 0 CoreFoundation 0x011afbe9 __exceptionPreprocess + 185 1 libobjc.A.dylib 0x013045c2 objc_exception_throw + 47 2 CoreFoundation 0x011a97f1 -[__NSArrayM insertObject:atIndex:] + 225 3 CoreFoundation 0x011a4c44 -[__NSArrayM addObject:] + 68 4 Parking 0x00012887 -[CoreDataSingleton getParkingLotTitlesForPermits:] + 1030 5 Parking 0x00004891 -[ParkingMapViewController sortLotsIntoSetsAccordingToPermitsAccepted] + 616 6 Parking 0x00006317 -[ParkingMapViewController viewDidLoad] + 1474 7 UIKit 0x000fc65e -[UIViewController view] + 179 8 UIKit 0x000faa57 -[UIViewController contentScrollView] + 42 9 UIKit 0x0010b201 -[UINavigationController _computeAndApplyScrollContentInsetDeltaForViewController:] + 48 10 UIKit 0x00109831 -[UINavigationController _layoutViewController:] + 43 11 UIKit 0x0010ab4c -[UINavigationController _startTransition:fromViewController:toViewController:] + 524 12 UIKit 0x00105606 -[UINavigationController _startDeferredTransitionIfNeeded] + 266 13 UIKit 0x0021de01 -[UILayoutContainerView layoutSubviews] + 226 14 QuartzCore 0x01a15451 -[CALayer layoutSublayers] + 181 15 QuartzCore 0x01a1517c CALayerLayoutIfNeeded + 220 16 QuartzCore 0x01a15088 -[CALayer layoutIfNeeded] + 111 17 UIKit 0x000fdb5f -[UIViewController window:willAnimateRotationToInterfaceOrientation:duration:] + 587 18 UIKit 0x000768e9 -[UIWindow _setRotatableClient:toOrientation:updateStatusBar:duration:force:] + 4347 19 UIKit 0x002f5948 -[UIWindowController transition:fromViewController:toViewController:target:didEndSelector:] + 1053 20 UIKit 0x00100982 -[UIViewController presentModalViewController:withTransition:] + 3151 21 Parking 0x0000b104 -[SampleHomeScreen appButtonTapped:] + 124 22 UIKit 0x0004ea6e -[UIApplication sendAction:to:from:forEvent:] + 119 23 UIKit 0x000dd1b5 -[UIControl sendAction:to:forEvent:] + 67 24 UIKit 0x000df647 -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 527 25 UIKit 0x000de1f4 -[UIControl touchesEnded:withEvent:] + 458 26 UIKit 0x000730d1 -[UIWindow _sendTouchesForEvent:] + 567 27 UIKit 0x0005437a -[UIApplication sendEvent:] + 447 28 UIKit 0x00059732 _UIApplicationHandleEvent + 7576 29 GraphicsServices 0x01424a36 PurpleEventCallback + 1550 30 CoreFoundation 0x01191064 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52 31 CoreFoundation 0x010f16f7 __CFRunLoopDoSource1 + 215 32 CoreFoundation 0x010ee983 __CFRunLoopRun + 979 33 CoreFoundation 0x010ee240 CFRunLoopRunSpecific + 208 34 CoreFoundation 0x010ee161 CFRunLoopRunInMode + 97 35 GraphicsServices 0x01423268 GSEventRunModal + 217 36 GraphicsServices 0x0142332d GSEventRun + 115 37 UIKit 0x0005d42e UIApplicationMain + 1160 38 Parking 0x00002424 main + 102 39 Parking 0x000023b5 start + 53 ) terminate called after throwing an instance of 'NSException'
I missed it with the debugger and couldnโt determine at what point in my program it fails, however I have a suspicion that it may be in this new section of the code that I wrote (threw it into the extra one saved here and there to help this error - will deal with the release later):
-(id)initWithFunction:(LoaderFunc)func withDelegate:(id)delegate setRestricted:(NSSet *)restricted setA:(NSSet *)A setC:(NSSet *)C setL:(NSSet *)L { if (self = [super init]) { self.addedOverlays = [[NSMutableArray alloc] init]; self.addedAnnotations = [[NSMutableArray alloc] init]; self.overlayRegions = [[NSMutableArray alloc] init]; self.loaderFunc = func; self.DLDelegate = delegate; return self; } return nil; } //... -(void)loadOverlaysFromStore { NSLog(@"DataLoader.m loadOverlaysFromStore"); //NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; NSDictionary *permits; permits = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:@"0",@"0",@"0",nil] forKeys:[NSArray arrayWithObjects:@"A",@"C",@"L",nil]]; NSSet *setOfRestrictedLots = [[NSSet setWithArray:[[CoreDataSingleton sharedManager] getParkingLotsForPermits:permits]] retain]; NSMutableArray *arrayOfRestrictedLotTitles = [[NSMutableArray alloc] init]; for (ParkingLot *l in [setOfRestrictedLots allObjects]) { [arrayOfRestrictedLotTitles addObject:[[l lotName]retain]]; } permits = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:@"1",@"0",@"0",nil] forKeys:[NSArray arrayWithObjects:@"A",@"C",@"L",nil]]; NSSet *setOfALots = [[NSSet setWithArray:[[CoreDataSingleton sharedManager] getParkingLotsForPermits:permits]] retain]; NSMutableArray *arrayOfALotTitles = [[NSMutableArray alloc] init]; for (ParkingLot *l in [setOfALots allObjects]) { [arrayOfALotTitles addObject:[[l lotName]retain]]; } permits = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:@"1",@"1",@"0",nil] forKeys:[NSArray arrayWithObjects:@"A",@"C",@"L",nil]]; NSSet *setOfCLots = [[NSSet setWithArray:[[CoreDataSingleton sharedManager] getParkingLotsForPermits:permits]] retain]; NSMutableArray *arrayOfCLotTitles = [[NSMutableArray alloc] init]; for (ParkingLot *l in [setOfCLots allObjects]) { [arrayOfCLotTitles addObject:[[l lotName]retain]]; } permits = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:@"1",@"1",@"1",nil] forKeys:[NSArray arrayWithObjects:@"A",@"C",@"L",nil]]; NSSet *setOfLLots = [[NSSet setWithArray:[[CoreDataSingleton sharedManager] getParkingLotsForPermits:permits]] retain]; NSMutableArray *arrayOfLLotTitles = [[NSMutableArray alloc] init]; for (ParkingLot *l in [setOfLLots allObjects]) { [arrayOfLLotTitles addObject:[[l lotName]retain]]; } [addedOverlays addObject:setOfRestrictedLots]; [addedOverlays addObject:setOfALots]; [addedOverlays addObject:setOfCLots]; [addedOverlays addObject:setOfLLots]; for (NSSet* set in addedOverlays) { for (ParkingLot *lot in [set allObjects]) { ParkingRegionOverlay *regionPolygon = [[ParkingRegionOverlay alloc] initWithPoints:[lot overlayCoordPoints] andTitle:[lot lotName] setRestricted:[NSSet setWithArray:arrayOfRestrictedLotTitles] setA:[NSSet setWithArray:arrayOfALotTitles] setC:[NSSet setWithArray:arrayOfCLotTitles] setL:[NSSet setWithArray:arrayOfLLotTitles]]; [overlayRegions addObject:regionPolygon]; [regionPolygon release]; } } }//loadOverlays
Any help is greatly appreciated. Thanks!