2016-08-08 5 views
0

Rubymotion과의 SendBird 채팅 통합 작업 중입니다. Objective-C/Swift 구조에 대한 제한된 지식으로 인해 SDK에서 Messaging Channel List를 가져올 수 없기 때문에 몇 가지 문제가 있습니다.SendBird SDK 메소드의 Rubymotion 번역

목표 - C :

- (void) queryMessagingChannels 
{ 
    messagingChannelListQuery = [SendBird queryMessagingChannelList]; 
    [messagingChannelListQuery setLimit:15]; 
    [messagingChannelListQuery nextWithResultBlock:^(NSMutableArray *queryResult) { 
     ... 
     for (int i = 0; i < [queryResult count]; i++) { 
      SendBirdMessagingChannel *mc = (SendBirdMessagingChannel *)[queryResult objectAtIndex:i]; 
      ... 
     } 
     ... 
    } endBlock:^(NSError *error) { 
    }]; 
} 

스위프트 :

나는 RubyMotion 코드에 다음 코드를 번역 도움을 부탁드립니다

func queryMessagingChannels() { 
    messagingChannelListQuery = SendBird.queryMessagingChannelList() 
    messagingChannelListQuery?.setLimit(15) 
    messagingChannelListQuery?.nextWithResultBlock({ (queryResult) -> Void in 
     .... 
     for model in queryResult { 
      let mc: SendBirdMessagingChannel = model as! SendBirdMessagingChannel 
      .... 
     } 
     .... 
     }, endBlock: { (code) -> Void in 
    }) 
} 

지금까지 내가 이것을 가지고,하지만 그것은이다 오류로 실패했습니다.

Rubymotion :

mp "Iterating over MessagingChannelList" 
@messagingChannelListQuery = SendBird.queryMessagingChannelList() 
@messagingChannelListQuery.setLimit(5) 
@messagingChannelListQuery.nextWithResultBlock.each do |queryResult| 
    @messaging_channels << queryResult 
end 
# reload tableview data here 

오류 :

chat_messaging_screen.rb:49:in `load_async': undefined method `nextWithResultBlock' for #<SendBirdMessagingChannelListQuery:0x117c672e0> (NoMethodError) 

정말 제대로이 경우 블록을 설정하는 방법을 모르겠어요.

답변

0

확인. 그래서 nextWithResultBlock 실제로 너무 엔드 블록을 통과해야합니다, 그래서 이것은 결국 그것을 해결하십시오 NoMethodError이 날을 던지고

@messagingChannelListQuery.nextWithResultBlock(
    -> (queryresult) { 
    #do something here with queryresult.each 
    }, 
    endBlock: -> (code) { 
    } 
) 

.