2012-01-13 51 views
0

我在Xcode 4.2中有一些關於Objective C的問題。Objective C方法如何

如何正確調用類成員方法。例如,如果我有一個名爲MyClass的類與方法繪製。目前我正在嘗試這個。

MyClass *myclass; 

myclass = [MyClass alloc]; 

[myclass draw]; 

我無法正確創建我的類實例,因爲draw方法中的斷點永遠都不會到達。

我也很好奇main function調用發生在Xcode 4.2項目中。如果我想用一個叫setup的函數做一個遊戲,我會在哪裏調用setup?

任何幫助表示讚賞,因爲我想在Xcode和Objective C.

+1

'main function' is in main.m – 2012-01-13 18:45:42

+0

@VinceBurn true,但我不認爲這就是戴夫真正想知道的 - 他在問關於製作遊戲。他確實需要在應用程序委託中使用applicationDidFinishLaunching。 – 2012-01-13 18:52:22

+0

是蒂姆,那是我正在尋找=) – Dave 2012-01-13 20:05:06

回答

3

你應該發送init消息來初始化對象:

MyClass *myclass = [[MyClass alloc] init]; 
[myclass draw]; 

甲很少使用選項的new方法,這是allocinit的組合:

MyClass *myclass = [MyClass new]; 
[myclass draw]; 

後者是更短,但非常規,因爲使用Objective-C++時可能會造成混淆。另請參閱NSObject class reference


爲了您的設置方法,您可以設置的東西在你的應用程序委託的applicationDidFinishLaunching:方法(或者在後臺進程或命令行應用程序的main功能)。 Xcode的模板在名爲main.m的文件中具有main函數。

+0

非常感謝你 – Dave 2012-01-13 20:04:32

2

熟悉在Objective C,你必須總是初始化對象。因此,中線應閱讀

myclass = [[MyClass alloc] init]; 

否則的代碼片段是罰款(期待的myclass潛在的內存泄漏)。

此外,類方法(在MyClass上調用)和實例方法(在myclass上調用)之間存在差異。您可以查看文檔中的許多示例。