2012-07-23 131 views
0

考慮4個文件:Login.h,Login.m,handler.h中,Handler.m傳遞參數

Login.h 
@class Handler 
    NSString *allResponse; 
- (void)handleAllResponse:(NSString*m)response passSelf:(NikeLogin*)LoginSelf; 

Login.m 
#import Handler.h 
[self handleAllResponse:response passSelf:self]; 

Handler.h 
#import Login.h 
NSString *allResponse; 

Handler.m 
- (void)handleAllResponse:(NSString*)response passSelf:(NikeLogin*)LoginSelf 
{ 
allResponse=[LoginSelf parseCommunities:response]; 
//variables assigned values 
} 
-(NSString*)parseCommunities:(NSString*)response 
{ 
//code 
} 

編譯器不能識別於handler.h handleAllCommunitiesResponse方法定義並因此不調用它來自Login.m。 此外,HandlerAllCommunitiesResponse方法中的變量必須在Handler.h中重新聲明。 其主要目的是在Login.h中聲明方法並在Handler.m中爲模塊化定義它們,並且在某些情況下,如上所述從Login .m 在上面的代碼中,self是從Login.m傳遞的,因此所有的方法和變量都可以在Handler.m中訪問,但並未發生。

請幫忙!!

+0

什麼是'裸'方法在Login.m調用?在這種情況下,什麼是自我(在任何方法定義之外)?是否也要登錄課程?如果不是,該模塊的目的是什麼? – 2012-07-23 18:38:52

回答

1

你是在引用你的#import?那些應該是:

#import "Login.h"

+0

第一個是Login.m文件,它不包含任何導入,但是包含@class的轉發類聲明Handler – user1153798 2012-07-23 18:40:58

+0

這沒有回答我的問題。此外,如果您僅使用前向聲明而不是導入,則不會,編譯器不會對這些方法簽名有任何意見。您似乎已經發布了相當不完整的代碼 - 請發佈一些實際顯示您正在做什麼並且失敗的內容。 – GarlicFries 2012-07-23 18:43:41

+0

你解決了這個問題嗎?如果不是,請張貼更多描述性代碼... – GarlicFries 2012-07-26 10:39:30