传递参数
考虑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中访问,但并未发生。
请帮忙!!
你是在引用你的#import
?那些应该是:
#import "Login.h"
第一个是Login.m文件,它不包含任何导入,但是包含@class的转发类声明Handler – user1153798 2012-07-23 18:40:58
这没有回答我的问题。此外,如果您仅使用前向声明而不是导入,则不会,编译器不会对这些方法签名有任何意见。您似乎已经发布了相当不完整的代码 - 请发布一些实际显示您正在做什么并且失败的内容。 – GarlicFries 2012-07-23 18:43:41
你解决了这个问题吗?如果不是,请张贴更多描述性代码... – GarlicFries 2012-07-26 10:39:30
什么是'裸'方法在Login.m调用?在这种情况下,什么是自我(在任何方法定义之外)?是否也要登录课程?如果不是,该模块的目的是什么? – 2012-07-23 18:38:52