У меня есть проект iOS, который собирается и выполняется как ожидается при отладке, но выдает ошибку компиляции при сборке для выпуска. Ошибка связана с iVar, который объявлен в суперклассе, а именно:
'fetchedResultsController_' undeclared (First use in this function).
Вот суперкласс .h.
@interface Super : UIViewController <NSFetchedResultsControllerDelegate> {
NSFetchedResultsController* fetchedResultsController_;
NSManagedObjectContext* managedObjectContext_;
}
@property (nonatomic, retain) NSFetchedResultsController* fetchedResultsController;
@property (nonatomic, retain) NSManagedObjectContext* managedObjectContext;
@end
и суперкласс .m
@implementation Super
@synthesize fetchedResultsController = fetchedResultsController_;
@synthesize managedObjectContext = managedObjectContext_;
#pragma mark -
#pragma mark Properties
-(NSFetchedResultsController*)fetchedResultsController {
return nil;
}
Интерфейс подкласса определяется следующим образом: -
@interface Sub : Super <UIActionSheetDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate> {
// extra stuff
}
В подклассе .m я реализую ленивую загрузку для fetchedResultsController
-(NSFetchedResultsController*)fetchedResultsController {
if (fetchedResultsController_ == nil) { // undeclared error here....
//stuff
}
return fetchedResultsController_;
Я запутался в основном потому, что не понимаю, почему это будет компилироваться в Debug, а не в Release!
Если бы кто-то мог определить, в чем проблема, я был бы очень признателен