2

iOSでSocketRocketを使用して小さなテストプロジェクトを行っています。しかし、私はその論理に頭を悩ませているようには見えません。

ここに問題があります。ソケットを呼び出すには、一種の「グローバル」関数が必要です。アプリを開くと、websockets を使用して接続する必要があります。

_webSocket.delegate = nil;
[_webSocket close];

_webSocket = [[SRWebSocket alloc] initWithURLRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"ws://localhost:12345/connectr"]]];
_webSocket.delegate = self;

self.title = @"Opening Connection...";
[_webSocket open];

ただし、デリゲート関数への接続に関するロジックを取得する必要があります。私はすでにシングルトンについて考えていましたが、シングルトン関数はかなりの CPU コストがかかると読みました。

したがって、基本的に私の質問は次のとおりです。(appdelegate) 初期化された SocketRocket インスタンスを使用するグローバル アクセス可能な関数を開始する最良の方法は何ですか。

4

3 に答える 3

1

問題なくシングルトンを使用できます。本当。50000 LOC で AppDelegate を作成するよりもはるかに優れています。また、AppDelegate は、ソケットではなくアプリ イベントのみを認識している必要があります。

于 2013-06-26T11:26:57.643 に答える
0

プロパティと合成を使用して appdelegate で変数を宣言します

要件クラスに appdelegate クラスをインポートします

AppDelegate  *objappdel=(AppDelegate*)[[UIApplication sharedApplication]delegate];  
objappdel.variablename;
于 2013-06-26T11:21:15.800 に答える