2012-07-23 144 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