Вопрос для начинающих iOS

#iphone #ios

#iPhone #iOS

Вопрос:

Я обновил этот вопрос, удалив элементы HUD. Я хочу разделить эту одну строку кода на две.

У меня есть этот вызов:

 [service2 PerformInsert:self action:@selector(PerformInsertHandler:) ApplicationID: applicationID ImageData: UIImageJPEGRepresentation([self.capturedImage objectAtIndex:0], 0.5) ImageDataType: @".jpg"];
  

Я хотел бы разделить его примерно так, но я довольно новичок в Objective-C.

 [service2 PerformInsert:self action:????? ApplicationID: applicationID ImageData: UIImageJPEGRepresentation([self.capturedImage objectAtIndex:0], 0.5) ImageDataType: @".jpg"];  
[self PerformInsertHandler:????];
  

Вот метод service2:

 - (SoapRequest*) PerformInsert: (id <SoapDelegate>) handler ApplicationID: (int) ApplicationID ImageData: (NSData*) ImageData ImageDataType: (NSString*) ImageDataType
        {
            return [self PerformInsert: handler action: nil ApplicationID: ApplicationID ImageData: ImageData ImageDataType: ImageDataType];
        }

 - (SoapRequest*) PerformInsert: (id) _target action: (SEL) _action ApplicationID: (int) ApplicationID ImageData: (NSData*) ImageData ImageDataType: (NSString*) ImageDataType
        {
            NSMutableArray* _params = [NSMutableArray array];

            [_params addObject: [[[SoapParameter alloc] initWithValue: [NSNumber numberWithInt: ApplicationID] forName: @"ApplicationID"] autorelease]];
            [_params addObject: [[[SoapParameter alloc] initWithValue: ImageData forName: @"ImageData"] autorelease]];
            [_params addObject: [[[SoapParameter alloc] initWithValue: ImageDataType forName: @"ImageDataType"] autorelease]];
            NSString* _envelope = [Soap createEnvelope: @"PerformInsert" forNamespace: self.namespace withParameters: _params withHeaders: self.headers];
            SoapRequest* _request = [SoapRequest create: _target action: _action service: self soapAction: @"http://tempuri.org/XXXXService/PerformInsert" postData: _envelope deserializeTo: [[XXXInsert alloc] autorelease]];
            [_request send];
            return _request;
        }
  

Есть ли какой-нибудь способ сделать то, о чем я прошу? Спасибо за любую помощь, которую вы можете предоставить.

Комментарии:

1. Можете ли вы показать документацию для ваших объектов HUD и service2 ? Глядя на ваш код, становится ясно, что он не мог работать, но, не зная, как все должно выглядеть, я не могу дать никакого совета.

2. Я добавил код server2 и полностью удалил часть HUD. Спасибо за вашу помощь.

Ответ №1:

Рассмотрите возможность использования чего-то подобного:

 SEL selector = [service2 performInsert:self 
                                action:@selector(performInsertHandler:) 
                         applicationID:applicationID 
                             imageData:storedImage 
                         imageDataType:@".jpg"]
// show hud
[hud setCaption:@"Working..."];
[hud setActivity:YES];
[hud show];

NSObject result = [self performSelector:selector withObject:nil];

// update hud
[hud setCaption:[NSString stringWithFormat:@"done with %@",result]];
[hud setActivity:NO];
[hud setImage:[UIImage imageNamed:@"19-check"]];
[hud update];
[hud hideAfter:2.0];
  

В этом примере используется ATMHud. Вы должны называть свои методы в нижнем регистре, blah:blah: вместо Blah:Blah . И избегайте написания вложенных предложений длиной 225 символов.

Комментарии:

1. Спасибо за помощь, но я удалил элементы HUD, и мне действительно нужна помощь с обновленным элементом выше. Спасибо