2017-04-05 7 views
0

シンプルなアプリケーションを作成してsendbirdサービスをテストしてみました。私は何かを作った。そしてそこに問題があった。いつdidReceiveMessageを呼び出さなければならないのか、なぜ私の仕事がうまくいかないのか?バードを送信didReceiveMessageが動作しません

myCode

- (IBAction)connnect:(id)sender { 


    [SBDOpenChannel getChannelWithUrl:@"iDict" completionHandler:^(SBDOpenChannel * _Nullable channel, SBDError * _Nullable error) { 
     if (error != nil) { 
      NSLog(@"Error 1 : %@", error.localizedDescription); 
      return; 
     } 

     [channel enterChannelWithCompletionHandler:^(SBDError * _Nullable error) { 
      if (error != nil) { 
       NSLog(@"Error: %@", error); 
       return; 
      } 
      NSLog(@"Connected to Channel : %@",channel.channelUrl); 



      // ... 
     }]; 
    }]; 


} 

- (IBAction)sendMessage:(id)sender { 

    [self.channel sendUserMessage:@"pop" data:@"Hey" completionHandler:^(SBDUserMessage * _Nullable userMessage, SBDError * _Nullable error) { 
     if (error != nil) { 
      NSLog(@"Error: %@", error); 
      return; 


     } 

    }]; 
} 



- (void)channel:(SBDBaseChannel * _Nonnull)sender didReceiveMessage:(SBDBaseMessage * _Nonnull)message { 
    if (sender == self.channel) { 
    NSLog(@"From Button.Message Received From %@ message is : %@ in channel :",sender.description,message.description); 
    } else { 
     NSLog(@"Failed"); 
    } 
} 
@end 

答えて

1

あなたはチャンネルの代理人として、あなたの現在のクラスを登録しましたか?これは、チャンネルがメッセージを受信すると、受信したメッセージで代理人に電話するようにする必要があります。

だからあなたのクラスでは、私はとても好きに適合することを宣言し、それはのUIViewControllerだと仮定しています:あなたのviewDidLoadで

@interface OpenChannelViewController : ViewController<SBDChannelDelegate> 
@end 

どこかで、あなたがチャンネルデリゲートにこのクラスを追加する必要があります。

- (void)viewDidLoad { 
    [SBDMain addChannelDelegate:self identifier:UNIQUE_HANDLER_ID]; 
} 

メッセージが届きます。情報はここから取得しました: https://docs.sendbird.com/ios?_ga=1.152151677.594130729.1491427400#open_channel_3_receiving_messages

幸運!

+0

ありがとうございます。しかし、私はそれをしました、たくさんしました、私が手に入れたのはUNIQUE_HANDLER_IDです。それは何か分かりません。 –

関連する問題