2011-12-19 39 views
2

這個問題的被解決了,感謝您的幫助的Xcode/Objective-C的調用實例方法

所以我想通過寫一個應用程序,並尋找到教自己的Xcode編程iPhone/iPod的應用程序是我需要知道,因爲我需要知道它。這個網站可能是最大的幫助,但是這次我一直無法找到我的問題的答案,可能是因爲對於有書的人來說,這太簡單了。

我正在嘗試創建一個應用程序,它將隨機從25張牌中抽取10張牌。我創建了一個名爲Dealer的類,它擁有所有牌和一個數組,該數組持有對每個牌的引用數據以及從數組中返回一張卡片並將其移除的方法。這裏是我的代碼的方法

- (NSString *)drawDominion 
{ 
    //some code here 

    NSString *current = [dominionDeck objectAtIndex:i]; 

    //more irrelevant code 

    return current; 
} 

然後在我的視圖控制器的操作方法,我創造了我的類的對象,並試圖調用drawDominion,但它給我,例如消息錯誤「接收器類型‘經銷商’不聲明與選擇「drawDominion」

- (IBAction) Dominion 
{ 
    Dealer *deal = [[Dealer alloc] init]; 
    NSString *testStr = [deal drawDominion]; 
} 

這裏就是我打過電話drawDominion代碼的方法。我不知道我在做什麼錯在這裏,我剛拿起Xcode的昨天,它已經從那時起一場艱苦的戰鬥。感謝您提供任何幫助。

回答一些你的回覆: 嗯,我沒有做一個Dealer.h,但我有點捎帶在現有viewController.h它的接口可能會導致我的問題?它在那裏已經定義的類的@end之後開始,它看起來像這樣。

@interface Dealer : NSObject 

-(NSString *) drawDominion:(NSString**)array; 
-(NSString *) drawIntrigue:(NSString**)array; 
-(NSString *) drawBoth:(NSString**)array; 

@end 

另外我想我忘了把實例變量放在.h中,但編譯器似乎並沒有抱怨。我應該把它們放在那裏嗎?

+1

你究竟在哪裏調用繪製字符串的方法? – 2011-12-19 18:44:37

+1

您是否在Dealer.h文件中聲明瞭該方法?你是否將Dealer.h文件導入到viewController中? – Abizern 2011-12-19 18:48:18

+0

這段代碼只能工作,但有許多要點(初始化程序,gui,...)。你有沒有嘗試記錄'testStr'? – 2011-12-19 18:49:45

回答

1

您是否將drawDominion方法的原型添加到了Dealer.h中?你應該有這樣的事情

@interface Dealer : NSObject { 
    // instance variables here 
} 
-(NSString*)drawDominion; 
@end 

在Dealer.h 然後,當你#IMPORT「Dealer.h」編譯器知道一個經銷商都會有drawDominion方法。

+0

那麼我沒有做一個Dealer.h,但我有點在現有的viewController.h piggy-back它的接口可能會導致我的問題?它在那裏已經定義的類的@end之後開始,它看起來像這樣。 – Jonathan 2011-12-19 18:56:58

+0

哎呦,我搞砸了那條評論,我編輯了答案到我原來的帖子,雖然 – Jonathan 2011-12-19 19:02:28

+1

感謝您的幫助,事實證明,當我改變方法時,我忘了從.h定義中取出參數。對不起,浪費你的時間。 – Jonathan 2011-12-19 19:07:02