我有一個iPhone應用程序提供調查問卷。問卷由幾個問題組成。iPhone/iPad應用程序中的超級/子類和視圖
我創建了一個QuestionnaireViewController
類,它根據問卷數量(這是從外部數據源提取的)中的問題數加載多個QuestionViewController
對象。
這工作正常。
該應用程序現在正在經歷進一步的迭代,並且要求稍微複雜一些。上述原型用相同的問題視圖加載問題(即一種類型的問題)。然而存在幾種類型的問題(基於滑塊,文本輸入等)。
所有類型的問題,共享屬性的子集:
一個問題,有一個標題,ID,sectionId和題號
的QuestionViews將在輸入數據的方式不同。有些需要使用滑塊輸入數據,而有些需要文本輸入。
這立即尖叫的超類/子類結構:
Question
SliderQuestions
TextInputQuestions
etc
我的問題是:
1)我怎樣才能加載基於一些數據值的視圖的具體子類?
例如
if ([questionType isEqualToString:@"slider"]) {
//load slider view
} else if ([questionType isEqualToString:@"textInput"]) {
//load text input view
}
我是否必須爲每個類構建一個View和ViewController?我怎樣才能建模這個超類的子類結構?
我的困惑在於創建視圖和視圖控制器。很顯然,我需要一個新視圖來處理特定問題的組件,比如向一個滑塊添加滑塊,向另一個文本輸入文本,但是如何顯示共享數據(超類屬性)而不必爲每個視圖重複?
你不能比較那樣的字符串。你應該使用' - [NSString isEqualToString:]'方法。不過,在這種情況下,'enum'可能是更好的方法。 – 2011-07-18 18:34:09