1
我有一個iOS項目,它在調試時按預期構建和執行,但在構建發佈時會引發編譯錯誤。該錯誤是其在父類的一個實例變量做,它專門爲超類/子類的調試/發佈構建差異
'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_;
我很困惑mai因爲我不明白爲什麼這會在調試中可用,但不能在Release中使用!
如果有人能確定是什麼問題我會非常
我拿着那個板子,做了修改後,確實讓問題消失了。然而,我然後想'我需要這個超類是什麼?'並從項目中擺脫出來! – Damo
@Damo::-) .... – JeremyP