Rubymotion との SendBird チャット統合に取り組んでいます。Objective-C / Swift 構造に関する知識が限られているため、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) {
}];
}
迅速:
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
})
}
これまでのところ私はこれを持っていますが、エラーで失敗しています。
ルビモーション:
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)
この場合、ブロックを適切に設定する方法が本当にわかりません。