我正在尝试将ASIHTTPRequest集成到Swift项目中 这是我的班级
class DataCenter : NSObject, ASIHTTPRequestDelegate{
// ...
func requestAllPrice() {
var url = NSURL.URLWithString("www.baidu.com");
var req = ASIHTTPRequest.requestWithURL(url) as ASIHTTPRequest
req.delegate = self
req.didFinishSelector = Selector("priceRequestDone")
self.queue.addOperation(req);
}
func priceRequestDone( request : ASIHTTPRequest ){
var response = request.responseString()
println(response)
}
func requestFailed( req : ASIHTTPRequest ){
println(req.error)
}
}
但我在ASIHTTPRequest.m收到错误EXC_BAD_ACCESS:
- (void)requestStarted{
if ([self error] || [self mainRequest]) {
return;
}
if (delegate && [delegate respondsToSelector:didStartSelector]) {
[delegate performSelector:didStartSelector withObject:self];
}
#if NS_BLOCKS_AVAILABLE
if(startedBlock){
startedBlock();
}
#endif
if (queue && [queue respondsToSelector:@selector(requestStarted:)]) {
[queue performSelector:@selector(requestStarted:) withObject:self];
}
}
在第'if(delegate&& [delegate respondsToSelector:didStartSelector]){'
这是ASIHTTPRequestDelegate的定义:
@class ASIHTTPRequest;
@protocol ASIHTTPRequestDelegate <NSObject>
@optional
// These are the default delegate methods for request status
// You can use different ones by setting didStartSelector / didFinishSelector / didFailSelector
- (void)requestStarted:(ASIHTTPRequest *)request;
- (void)request:(ASIHTTPRequest *)request didReceiveResponseHeaders:(NSDictionary *)responseHeaders;
- (void)request:(ASIHTTPRequest *)request willRedirectToURL:(NSURL *)newURL;
- (void)requestFinished:(ASIHTTPRequest *)request;
- (void)requestFailed:(ASIHTTPRequest *)request;
- (void)requestRedirected:(ASIHTTPRequest *)request;
...
@end
我尝试将一个选择器分配给self.didStartSelector,它会在编译代码中报告错误访问。 帮帮我吧!