TCP 経由でサーバーから一連の異なるメッセージを受信するクライアントをプログラミングしています。サーバーに接続し、NSData チャンクの形式でメッセージを受信できる簡単なテスト クラスを作成しました。しかし今、私はここから先に進む方法に行き詰まっており、いくつかの設計提案が必要です.
私が持っている 1 つのアイデアは、メッセージごとに、受信したメッセージの種類とメッセージを含むオブジェクトをデリゲートに通知するプロトコルを作成することです。
プロトコル
-(void)didReceiveLifesign:(LifesignMessage*)message;
-(void)didReceiveLocation:(LocationMessage*)message;
...
パーサー
-(void)didReceiveData:(NSData*)data {
int type = getType(data);
switch(type) {
case 0: [self.delegate didReceiveLifesign:parseLifesign(data); break;
case 1: [self.delegate didReceiveLocation:parseLocation(data); break;
...
}
}
しかし、メッセージの量が増えるにつれて、このソリューションは面倒だと思います。これを行うよりきれいな方法はありますか?