Я хочу, чтобы создать объект, но тип зависит от результата условия if-:инициализации объекта, если условие
if ([type isEqualToString:@"day"]) {
GraphDayView *graphv = [[GraphDayView alloc] initWithFrame:rect];
} else {
GraphMonthView *graphv = [[GraphMonthView alloc] initWithFrame:rect];
}
Проблема заключается в том, что graphv выходит за рамки, так что я не в состоянии используйте его после if-statement. Так что я попытался объявить его как идентификатор:
id graphv;
if ([type isEqualToString:@"day"]) {
graphv = [[GraphDayView alloc] initWithFrame:rect];
} else {
graphv = [[GraphMonthView alloc] initWithFrame:rect];
}
Но проблема теперь в том, что компилятор не знает, какой объект grapv есть. So:
graphv.backgroundColor = [UIColor whiteColor];
дает ошибки. Кто-нибудь знает, как решить эту проблему?
Обычно вы используете общий базовый класс в таком случае, возможно ли это здесь? –