我正在开发一个使用NSURLConnection的应用程序。我希望动态加载内容,因此我必须实现许多代理才能实现。
为了减少委托的数量,我创建了一个类(AbstractURLConnection),它是< NSURLConnectionDelegate取代。
我目前正在使用登录视图(以及它的控制器)来测试NSURLConnectionDelegate类的行为。这是我的AbstractURLConnection类:
AbstractURLConnection
在LoginViewController中,我执行以下操作:
@interface LoginViewController : UIViewController {
AbstractNSUrlConnection *au;
}
@property (strong, nonatomic) AbstractNSUrlConnection <NSURLConnectionDelegate> *au;
- (void) handleResponse:(NSMutableData *) data;
并在.m文件中:
- (IBAction)login:(id)sender {
NSURLRequest *req = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://myapp.dev:8887/users/login"]];
au = [[AbstractNSUrlConnection alloc] initWithRequest:req sender:self withSelector:@"handleResponse:" andRequestMethod:[AbstractNSUrlConnection MethodTypePOST]];
}
- (void) handleResponse:(NSMutableData *) data{
NSLog(@"called back");
}
当我运行应用程序时,我的LoginView会弹出,当我按下登录按钮时,会调用登录函数。建立连接并调用回调方法(handleResponse)。
但是,当我第二次按下登录按钮时,我的 handleResponse 方法出现了EXC_BAD_ACCESS错误。
我想我再次按下按钮时会清理发件人,但我不知道如何解决这个问题。知道可能导致这种情况的原因吗?
提前致谢,
的Jordy