это мой код в классе: Connection.h, и я создаю объект Connection в каждом классе, где я хочу вызвать новое соединение для получения данных (я не знаю тогда, если это правильный способ делать)
импорт "connection.h" импорт "XMLParser.h"
@implementation Подключение @synthesize WebData, soapResults, XmlParser;
- (Connection *) Init: (NSInteger *) methodNumber { [super init]; methodNum = methodNumber; return self; }
- (недействительными) соединение: (NSString *) SOAPMessage {
NSLog(soapMessage);
NSURL *url = [NSURL URLWithString:@"http://.....?WSDL"];
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url];
NSString *msgLength = [NSString stringWithFormat:@"%d", [soapMessage length]];
[theRequest addValue: @"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[theRequest addValue: msgLength forHTTPHeaderField:@"Content-Length"];
[theRequest setHTTPMethod:@"POST"];
[theRequest setHTTPBody: [soapMessage dataUsingEncoding:NSUTF8StringEncoding]];
//NSURLConnection *theConnection = [NSURLConnection connectionWithRequest:theRequest delegate:self];
NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
[theConnection start];
if(theConnection)
{
webData = [[NSMutableData data] retain];
}
else
{
NSLog(@"theConnection is NULL");
}
}
- (пустоты) соединение: (NSURLConnection *) соединение didReceiveResponse: (NSURLResponse *) ответ { [webData setLength: 0]; }
- (пустоты) соединение: (NSURLConnection *) соединение didReceiveData: данные (NSData *) { [Webdata appendData: данные]; }
- (Недействительными) соединение: (NSURLConnection *) подключение didFailWithError: (NSError *) Ошибка { NSLog (@ "ERROR с theConenction"); [соединение релиз]; [релиз webData]; соединение (NSURLConnection *) {
NSLog (@ "DONE: (аннулируются) connectionDidFinishLoading - }
.Полученное Б:% d», [длина Webdata]);
NSString * theXML = [[NSString Alloc] initWithBytes: [Webdata mutableBytes] Длина: [длина Webdata] Кодирование: NSUTF8StringEncoding];
NSLog(theXML);
[theXML release];
if(xmlParser)
{
[xmlParser release];
}
xmlParser = [[NSXMLParser alloc] initWithData: webData];
//Initialize the delegate.
XMLParser *parser = [[XMLParser alloc] initXMLParser:methodNum];
//Set delegate
[xmlParser setDelegate:parser];
//[xmlParser setDelegate: self];
[xmlParser setShouldResolveExternalEntities: YES];
[xmlParser parse];
[connection release];
[webData release];
?}
@end
вы можете показать мне это с одним примером, пожалуйста, я не очень хорошо знаю, как создать делегат – 2009-08-14 16:00:31
код вы вывесили в своем ответе хорошо выглядит. - Теперь все, что вам нужно сделать, это дать класс Connection - экземпляр вашего контроллера представления, который должен «@syn thesize' прядильщик. Затем, прежде чем вы вызовете '[theConnection start]', запустите свой счетчик и в 'connectionDidFinishLoading:', остановите его снова. – Tim
Как создать экземпляр? должен ли я создать в Connection.h объект 'view controller' ?? – 2009-08-14 18:50:07