Я использую Xcode 4.2.1 с ARC
Я пытаюсь намылить веб-сервис с помощью асинхронного запроса.У меня есть 2 имени класса Connector и EmergencyCall.EmergencyCall является делегатом Connector.
это Connector.h
@protocol ConnectorDelegate;
@interface Connector : NSObject
@property (retain,nonatomic) NSMutableData *webData;
@property (retain,nonatomic) NSString *theXML;
@property (nonatomic,assign) id<ConnectorDelegate> delegate;
@property (nonatomic,retain) NSString *theURL;
-(void)callWebServiceWithSoapBody:(NSString *)soapBody;
-(id)initWithURL:(NSString *)url;
+(id)ConnectorWithURL:(NSString *)url;
@end
@protocol ConnectorDelegate <NSObject>
-(void)callDidFinish:(Connector *)controller;
@end
в Connector.m Я использую NSURLConnection с асинхронным запросом
NSURLConnection * theConnection = [[NSURLConnection alloc] initWithRequest: делегатRequest: self];
три метода подключения
-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
[webData setLength: 0];
}
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
[webData appendData:data];
}
-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
NSLog(@"Cannot Connect");
}
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSLog(@"DONE. Received Bytes: %d", [webData length]);
theXML = [[NSString alloc] initWithBytes: [webData mutableBytes] length:[webData length] encoding:NSUTF8StringEncoding];
NSLog(@"%@",theXML);
[self.delegate callDidFinish:self]; <<<<< error SIGABRT and EXC_BAD_ACCES
}
Я могу подключиться к веб-службе и получить ответ в формате XML.и я попытался отправить XML в класс EmergencyCall для анализа из XML для объекта target-c, но я получаю сообщения об ошибках SIGABRT и EXC_BAD_ACCES.Я предполагаю, что это потому, что я установил другого делегата в
NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
Теперь я не знаю, что делать, чтобы отправить XML в классе Connector в класс EmergencyCall.
Другой способ подключенияс синхронным запросом
NSURLResponse *response = nil;
NSError *error = nil;
NSData thewebData = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:response error:error];<<< the Xcode say autorelease diallowed in ARC
код Xcode сообщает, что автоматическое освобождение NSURLResponse и NSData дозвона в ARC
Поэтому я помечаю этот класс Connector с -fno-objc-arc, но ошибка все еще появляется.
Я не знаю, что мне делать?пожалуйста, кто-нибудь подскажет.