2016-10-02 1 views
1

Это мой первый опыт работы с быстрым движком Google.Вызов конечной точки API-интерфейсов API-интерфейсов Objective-C для объекта REST из проекта iOS Swift

Я создал простой Java-сервер, сделал документ для открытия, использовал генератор сервисов (новый генератор службы REST) ​​для создания клиентских библиотек, добавил все клиентские библиотеки google-specfic.

Я не могу прошла ошибка компилятора в запросе ..

вот код:

let service: GTLRHelloworldService = GTLRHelloworldService() 
//no compiler problem with this line. 
//my GTLRHellowworldService is included through the bridging headers 
     service.isRetryEnabled = true 
     set myquery: GTLRHelloworldQuery_GreetingsEstablishHandShake = GTLRHelloworldQuery_GreetingsEstablishHandShake.query() 

     service.executeQuery(myquery) { (ticket:GTLRServiceTicket, resp:GTLRHelloworld_HelloGreeting, error: NSError) in 
        nameLabel.text = resp?.message 
       } 

Ошибка в последней строке:

не может преобразовать значение типа ' (GTLRServiceTicket, GTLRHelloworld_HelloGreeting, NSError) ->() 'до ожидаемого типа аргумента' GTLRServiceCompletionHandler? '

Для информации определение GreetingsEstablishHandShake в файле заголовка, созданного servicegnerator является:

/** 
* GTLRHelloworldQuery_GreetingsEstablishHandShake 
* 
* Method: helloworld.greetings.establishHandShake 
* 
* Authorization scope(s): 
* @c kGTLRAuthScopeHelloworldUserinfoEmail 
*/ 
@interface GTLRHelloworldQuery_GreetingsEstablishHandShake : GTLRHelloworldQuery 
// Previous library name was 
// +[GTLQueryHelloworld queryForGreetingsEstablishHandShake] 

/** 
* Fetches a @c GTLRHelloworld_HelloGreeting. 
* 
* @returns GTLRHelloworldQuery_GreetingsEstablishHandShake 
*/ 
+ (instancetype)query; 

@end 

и объект HelloGreeting в заголовке файла:

@interface GTLRHelloworld_HelloGreeting : GTLRObject 

@property(nonatomic, copy, nullable) NSString *message; 

@end 

ответ

0

Я перевел быстрый код цель c. я следовал за направление в the very helpful google introduction for objective c for rest

мой код ниже теперь работает и успешно взаимодействует с сервером:

static GTLRHelloworldService *service = nil; 
if (!service) { 
    service = [[GTLRHelloworldService alloc] init]; 

    // Have the service object set tickets to retry temporary error conditions 
    // automatically 
    service.retryEnabled = YES; 

    //[GTMHTTPFetcher setLoggingEnabled:YES]; 
} 

GTLRHelloworldQuery_GreetingsEstablishHandShake * query = [GTLRHelloworldQuery_GreetingsEstablishHandShake query]; 

GTLRServiceTicket *ticket = [service executeQuery:query 
      completionHandler:^(GTLRServiceTicket *callbackTicket, 
           GTLRHelloworld_HelloGreeting *resp , 
           NSError *callbackError) { 
       _nameLabel.text = resp.message;}]; 

Я был бы признателен, если кто-нибудь может помочь мне понять, как перевести этот код в быстры,