SQLite Persistent Object error in iOS 4.2 iPad project

Question: Thanks to Jeff LaMarche’s SQLite Persistent Objects library I could build SQLite database projects around his code. Since I switched to Xcode 4 I am struggling. My codes in an iPad – iOS 3.2, 4.2, 4.3 – project hang up or return errors. The same code runs smoothly on iOS 3.2 devices but not on 4.2 and 4.3! For example:
    BOOL retc = NO;
    @try {
        [self clear];
        // There is only one record that matches the search criteria
        self.listinfo = (dbmenulist *)[[dbmenulist class] findByCriteria: MENULIST_SQLQUERY(idmenulist)];
        if( self.listinfo ){
            [self fillItemsFor: idmenulist];
            retc = YES;
        }
    }
    @catch (NSException * e) {
        NSLOG(@"loadFor: exception: %@", e.reason);
    }
    return retc;
I do not want to mess up with Core Data. SQLite Persistent Objects is simple approach for data persistence, but what’s wrong with Xcode 4? Answer: Head diving into Xcode 4 requires bravery. Although your code was always in error but successfully managed to survive previous Xcode projects. Xcode 4 provides more rigorous checking and iOS 4 is a major upgrade on iOS 3, hence your struggle. Even many of us does not plan to move over to Xcode 4 it is well worth using it to review and check your existing source code. You’ll see tons of warnings in previous Xcode 3 projects. Back to your SQLite project. Pay attention to the comments:
    BOOL retc = NO;
    @try {
        [self clear];
        // - findByCriteria returns an NSArray object
        // - findFirstByCriteria returns a dbmenulist object
        // - You MUST use findFirstByCriteria here:
        self.listinfo = (dbmenulist *)[[dbmenulist class] findFirstByCriteria: MENULIST_SQLQUERY(idmenulist)];
        // - If you want to be sure test the returned instance:
        if( self.listinfo && [self.listinfo isKindOfClass:[dbmenulist class]] ){
            [self fillItemsFor: idmenulist];
            retc = YES;
        }
    }
    @catch (NSException * e) {
        NSLOG(@"loadFor: exception: %@", e.reason);
    }
    return retc;