2012-08-31 38 views
0

Im新的xcode和iOS編程。 我按照這個教程: http://www.thetutorialblog.com/cocoa-objective-c/creating-a-basic-ipad-application/在Objective-C中增加/減少一個數字iOS

我得到它與一個「 - 按鈕」,一個標籤和一個「+按鈕」的工作。 但我想那些多,我有添加教程代碼,並將其複製這樣的:

IBOutlet UILabel *currentNumber2; 

-(IBAction)incrementNumber2:(id)sender2; 
-(IBAction)decrementNumber2:(id)sender2; 


-(IBAction)incrementNumber2:(id)sender2 { 
    number++; 
    [currentNumber2 setText:[NSString stringWithFormat:@"%d", number]]; 
} 


-(IBAction)decrementNumber2:(id)sender2 { 
    number--; 
    [currentNumber2 setText:[NSString stringWithFormat:@"%d", number]]; 
} 

但是,當我按下第一個按鈕+,它向上計數+1在第一個標籤,然後當我按下第二個+按鈕,它將繼續從label2中的第一個按鈕開始計數,因此它將放入2.瞭解?

+0

是否有超過按鈕和多個標籤? –

+1

在這種情況下,您需要多個實例變量(或多個模型對象;這是面向對象編程中的一個關鍵概念,在該對象的所有方法調用中共享'number'實例。 –

+0

什麼是您的確切的要求? –

回答

0

這是面向對象編程的典型行爲:在對象的每個方法調用中共享單個實例number。如果您想要支持多個number實例,您有兩種選擇:在您的類中添加更多實例變量,並在創建更多實例時添加越來越多的代碼,或者僅創建一個新類實例。

注意,你會很快作出寶貴的實現:有時模擬域有不同的對象要求比我們的應用領域(例如,你應該說:「但我不應該做的更多情況我UIViewController !!「,你是對的)。這是邁向iOS 深度支持的架構的第一步:Model-View-Controller。你的模型,在這種情況下,應該與控制器分離,控制器應該能夠處理任何數量的控制器(而不僅僅是你創建ivars的數量)。

這是一個很好的路徑:-)

+0

非常感謝@ctrahey!正如你所說,我可以添加越來越多的代碼,但這個應用程序最終會有大約100個標籤,我想要增加和減少,併爲所有這些添加代碼會花費我不必要的時間。我不知道我是否瞭解你我的第二選擇。我如何培育班級的新課程?在這裏告訴「容易」還是可以給我一個教程的提示? – Kallen

+0

這取決於您對設計模式的熟悉程度,以及您是否在其他應用程序中實現了MVC。對於那些從Objective-C/Cocoa/iOS開始的人來說,我最喜歡的資源是Paul Hegarty在iTunes U上的Stanford CS193p lecure視頻,他是NextStep的工程師,當時所有這些東西都是最初製作完成的。最初的幾場講座之一是致力於iOS中MVC的概念。 http://itunes.apple.com/us/itunes-u/ipad-iphone-application-development/id473757255?mt=10 –