0

NSURLConnection を作成し、デリゲートとして使用する別のクラスを作成しましたが、接続が終了した後はデリゲート データを使用できません。データはデリゲート クラス内からコンソールに書き込まれますが、外部には書き込まれません。

ServerCommunicationDelegate クラス (デリゲート) のメソッド "connectionDidFinishLoading" で:

self.errorLog  = [[NSString alloc] initWithData:self.responseData encoding:NSUTF8StringEncoding];
NSLog(self.errorLog); // Prints the data to console 

接続が行われるクラス:

ServerCommunicationDelegate *del = [[ServerCommunicationDelegate alloc] init];
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:del];
NSLog(@"Errorlog %@", del.errorLog); // Returns null

「errorLog」は「ServerCommunicationDelegate」のプロパティです。

ここで委任パラダイムについて誤解したことがありますか、それとも私が見逃した何かがありますか?

いずれにせよ、事前に感謝します。

4

1 に答える 1

1

NSURLConnection非同期で動作します。この線

NSLog(@"Errorlog %@", del.errorLog); // Returns null

接続がロードを完了する前に実行されます (おそらく、ロードを開始する前です)。

于 2013-07-04T08:52:17.520 に答える