Передача по ссылке в мыльном вызове (Objective-C) - PullRequest
1 голос
/ 15 июля 2011

Я пытаюсь сделать SOAP-вызов в target-C для веб-службы, которая, очевидно, требует, чтобы параметр передавался по ссылке (я думаю).У меня нет доступа к самому веб-сервису, мне только поручено работать с ним.Мне были даны примеры в C # для работы с проблемой, которые по существу:

var response = ServiceClient.Method(out parameter1, parameter2;

В C # удобно использовать ключевое слово out, но в ObjC я не встречал ничего подобногоВ настоящее время я звоню мылом, как:

        NSMutableArray* _params = [NSMutableArray array];
        [_params addObject: [[[SoapParameter alloc] initWithValue: parameter1 forName: @"paramName"] autorelease]];
    NSString* _envelope = [Soap createEnvelope: @"Method" forNamespace: self.namespace withParameters: _params withHeaders: self.headers];

    SoapRequest* _request = [SoapRequest create: _target action: _action service: self soapAction: @"http://blahblahblah" postData: _envelope deserializeTo: [[responseType alloc] autorelease]];
    [_request send];
    return _request;

Любая помощь очень ценится

Ответы [ 2 ]

1 голос
/ 15 июля 2011

В C # удобно использовать это ключевое слово out, но я не встречал ничего подобного в ObjC.

Эквивалентом out является использование указателя на переменную.Определите ваш метод следующим образом:

- (int) aMethodWithOutParameter:(NSString**)param {}

Затем используйте его следующим образом:

NSString *s;
int result = [self aMethodWithOutParameter:&s];
NSLog(@"result = %i, s = %@", result, s);

Обратите внимание на дополнительные * в объявлении метода, а затем & в переданномпеременная при вызове.

0 голосов
/ 15 июля 2011

Вам нужно будет отправить код;нет никакой причины или необходимости использовать проход по ссылке из того, что вы опубликовали до сих пор, но также недостаточно информации для правильного ответа.

Это также не имеет смысла: [[responseType alloc] autorelease]] поскольку объект не инициализируется.

Считывая этот код, API SoapRequest тоже кажется странным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...