私はNSURLConnectionDelegate connection:didReceiveData not workingを見てきましたが、それで良い結果は出ていないようですので、データが得られない理由が不思議です。NSUrlConnectionDelegateがデータをロードするメソッドを呼び出さない
didReceiveResponse
とdidReceiveData
にブレークポイントを設定しました。
「接続に成功しました」というメッセージが表示されるので、接続が開始されていることがわかります。
私はメモリ管理にARCを使用しています。
- (void)load {
request = [NSMutableURLRequest requestWithURL:myURL
cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
timeoutInterval:60];
NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self];
if (conn) {
[conn start];
NSLog(@"connection succeeded, %s", [myURL description]);
responseData = [NSMutableData data];
} else {
NSLog(@"connection failed");
}
}
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
responseData = [[NSMutableData alloc] init];
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
[responseData appendData:data];
}
UPDATE:
私はAsynchronous unit test not being called by SenTestCaseでこの外観をテストする方法を確認するには。
私はjonkrollで述べた2つの方法を実装しましたが、彼の答えでは表示していませんでしたが、呼び出されていません。
私は[conn start]
を追加しました。これは動作していなかっただけなので、私はそれが解決できると思っていましたが、そのような運がありません。
私はこのようにconnを変更しました:@property NSURLConnection * conn;しかし、私は同じ結果を得て、データは受け取られません。 90秒をちょっと待ってから私の単体テストは待つことなく停止します。 –
@JamesBlackテスト済みのサンプルコードをいくつか追加しました。 – NJones
まだ違いはわかりませんが、あなたのおかげで今働いています。 –