2010-06-21 47 views
5

調用方法當調用一個方法,我用在Xcode

[self methodname]; 

我遇到的,在xCode我得到警告的負荷的問題!這是說"*xxxappdelegate.app may not respond to methodname*"

有沒有更好的方法來調用方法?

+0

我不會*總是*使用'self'。 – 2010-06-21 04:59:09

回答

5

如果收到警告,這意味着無論是:

  • 這種方法不適用於你的 類存在
  • 如果你撥打的方法 在不同的類(不是自我),然後 你還沒有導入 的標頭
+0

謝謝, 我再次看看我的.h文件:) – user370507 2010-06-21 05:00:30

4

這些警告只是表示編譯器不知道有問題的類是否擁有您所使用的方法灌裝。確保您調用的方法在您正在使用的.m文件中的位置之上定義,或者將方法聲明在文件的頂部。

@implemention A 

-(void)blah 
{ 
    [self foo]; // warning! 
} 

-(void)foo 
{ 
    [self blah]; // no warning 
} 

@end 
+0

謝謝你,:) – user370507 2010-06-21 05:50:52

+1

爲了避免這種情況,在.h文件中聲明該方法。 – Nishant 2012-07-02 11:28:47

0

添加methodname@interface爲類,xxxappdelegate在你的榜樣。或者只要確保methodname實施在您在文件中調用它的位置之前。

+0

謝謝你的幫助:) – user370507 2010-06-21 05:51:54

1

有一種叫做編譯順序的東西。當您調用方法foo時,它尚未定義,但是當您調用方法blah時,它只在上一行中定義。

更具體:

cout << a; 
string a = "hello"; 

當你做,你會得到一個錯誤不確定的變量 「a」。你應該做的是:

string a = "hello"; 
cout << a; 
0

如果.h文件有方法聲明有可能是xcodes無法索引來解決這個去的喜好和刪除檔案及其他存儲的數據相關的一些問題。