И какой-то рефакторинг (написание базового класса для двух разных классов + несколько других вещей), мой проект не смог скомпилироваться на ipad, не работает нормально на симуляторе
/Users/.../PaintViewController.m:50: error: 'width' undeclared (first use in this function)
/Users/.../PaintViewController.m:59: error: 'backgroundView' undeclared (first use in this function)
Конечно, эти переменныеобъявлен (в новом базовом классе), а 2 класса наследуются от базового класса
есть идеи почему?Я также импортировал базовый класс.
класс, в котором происходят ошибки:
#import "PaintViewControllerBase.h"
@class PopupSaveDrawingController;
@interface PaintViewController : PaintViewControllerBase
{
MenuBarViewController *menuBarView;
bool bBarIsOpened;
bool bIsClosing;
bool bIsOpening;
float fBarY;
NSTimer *toggleTimer;
NSArray *toolBrushImgArray;// liste des textures de brosses
PopupSaveDrawingController *popupSaveDrawning;
}
базовый класс:
@interface PaintViewControllerBase : UIViewController
{
// Handle Move ///
CGPoint location;
CGPoint previousLocation;
BOOL firstTouch;
// Size ///
NSInteger width;
NSInteger height;
// Actions
UndoRedoManager *undoManager;
toolType currentToolType;
// Brush
PaintBrush *brush;
PaintImage *image;
// image buffer //////
NSMutableData *data;
// GUI
PaintCanvas *backgroundView;
PaintCanvas *modeleView;
PaintCanvas *drawView;
}
оператор, который не удалось скомпилировать:
width = [PaintMenuViewController width]; // error here on ipad target only
height = [PaintMenuViewController height];// error here on ipad target only
CGRect rect = CGRectMake(0,0,width,height);
self.view = [[UIView alloc] initWithFrame:rect];
/**********************
* IMAGEVIEW BACKGROUND
**********************/
backgroundView = [[PaintCanvas alloc] initWithFrame:rect]; // error here on ipad target only
проблема исчезнет, если я добавлю self перед каждой переменной, например: self.width = 1024, но я бы предпочел не делать этого (есть много вещей, которые нужно изменить)