我想創建一個對象,但該類型取決於如果條件的結果:初始化對象,如果條件
if ([type isEqualToString:@"day"]) {
GraphDayView *graphv = [[GraphDayView alloc] initWithFrame:rect];
} else {
GraphMonthView *graphv = [[GraphMonthView alloc] initWithFrame:rect];
}
的問題是,graphv超出範圍,所以我不能夠在if語句後使用它。 所以,我試圖將其聲明爲一個id:
id graphv;
if ([type isEqualToString:@"day"]) {
graphv = [[GraphDayView alloc] initWithFrame:rect];
} else {
graphv = [[GraphMonthView alloc] initWithFrame:rect];
}
但現在的問題是,該編譯器不知道什麼樣的對象grapv的是。所以:
graphv.backgroundColor = [UIColor whiteColor];
提供了一個錯誤。任何人都知道如何解決這個問題?
通常你在這種情況下使用一個通用的基類,這是可能的嗎? – 2012-03-17 13:57:09