0

I've got a REALLY strange problem - my testers report problems (app is hanging, not crashing) on 3GS, but NOT on 3G... this is the code where I'm assuming the problem:

- (void)applicationDidFinishLaunching:(UIApplication *)application {
    NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler);
    [FlurryAPI startSession:@"myflurryapisessionkey"];
    [FlurryAPI setSessionReportsOnCloseEnabled:NO];

    // set managedObjectContext on TabBarController
    tabBarController.managedObjectContext = self.managedObjectContext;

    [window addSubview:tabBarController.view];
    [window makeKeyAndVisible];

    // check if we have to show a favorite immediately
    Favorite *startseiteFavorite = [self getStartSeiteFavorite];

    if (startseiteFavorite != nil) {
        [FlurryAPI logEvent:@"favorite found"];
        [self showStartseiteFavorite:startseiteFavorite];
    } else {
        [FlurryAPI logEvent:@"no favorite found"];
    }

}

- (Favorite *) getStartSeiteFavorite {
    // loading values
    smart_infoAppDelegate *appDelegate = (smart_infoAppDelegate *)[[UIApplication sharedApplication] delegate];
    managedObjectContext = [appDelegate managedObjectContext];
    NSFetchRequest *request = [[NSFetchRequest alloc] init];
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Favorite" inManagedObjectContext:managedObjectContext];
    [request setEntity:entity];

    NSPredicate * predicate;
    predicate = [NSPredicate predicateWithFormat:@"startseite == 1"];
    [request setPredicate:predicate];

    NSError *error;
    NSMutableArray *mutableFetchResults = [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy];

    [request release];

    Favorite *tempFavorite = [mutableFetchResults count] > 0 ? [mutableFetchResults objectAtIndex:0] : nil;
    [mutableFetchResults release];

    return tempFavorite;
}

I'd like to select a tab according to select the tab according to the existence of such a 'startseiteFavorite' - if there's one, I select tab 1, otherwise tab 0... does anyone of you find a problem or a reason why this works without problems in 3G but not in 3GS?

Thanks a lot,

Stefan

Igor Chubin
  • 61,765
  • 13
  • 122
  • 144
swalkner
  • 16,679
  • 31
  • 123
  • 210

1 Answers1

0

It's pretty tough to figure out a problem like this if you have not actually duplicated the problem yourself? Are you not able to duplicate the problem on the 3GS? You're saying that you are assuming where the problem occurs. That's not the best approach.

Do you not have a 3GS to test on? If not, I would go buy one to test it and get to the bottom of the issue directly in the debugger. You should never ship an app without having the hardware your app says it supports (not sure if you're doing that, but I'm thinking it's possible from the sound of your question).

Ask your testers exactly how they are causing the hang to occur.

Matt Long
  • 24,438
  • 4
  • 73
  • 99
  • of course I do NOT ship the app this way. I'm pretty sure that this is the code where the problem occurs, but I can't see why. And I tried everything on the 3G - it just works there. But two testers with 3GS report a hanging app during startup. Now I'm asking for hints: what could be the difference between 3G and 3GS or what could be wrong with the code? – swalkner Jul 06 '10 at 02:28
  • You don't say whether or not you have a 3GS to test with the debugger. If the problem is with the 3GS, then there's no point in trying to determine where the problem is with a 3G. I helped a friend debug a 3GS issue that was OpenGL related. Took him hours scratching his head with just the 3G. Hooked up my 3GS and ran the debugger and had the bug squashed within a minute. Get a 3GS if the problem is on a 3GS. – Matt Long Jul 06 '10 at 04:29
  • okay, thanks - I'll see that I get a 3GS to debug on. But how can it be that code behaves different on 3GS and on 3G? Is there more than only memory-difference? – swalkner Jul 06 '10 at 06:32
  • iPhone 3G and iPhone 3GS have a different architecture (armv6 versus armv7), so they are actually executing different code. Normally there should be no observable difference, but there have been instances of bugs in one architecture and not the other (e.g. http://stackoverflow.com/questions/8391307/coordinates-all-wrong-on-iphone-3g-it-could-be-your-compiler) – Clafou Dec 07 '11 at 10:14