私はiOS開発が新しく、URLからコンテンツを取得しようとしています。私はNSURLConnectionを使用するためのAppleチュートリアルを使用していますが、すべて動作していますが、私はデータを取得していません。私は周りを見回して、私の問題に対する答えを見つけることができませんでした。プロジェクトでARCも使用していますが、問題が発生する可能性があります。NSURL ARCとの接続でデータが受信されない
@interface ViewController : UIViewController
@property (nonatomic, retain) NSMutableData *receivedData;
@end
実装ファイル:
@implementation ViewController
@synthesize receivedData;
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"1. viewDidLoad");
// Create the request
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.apple.com/"] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
// Create the connection with the request and start loading the data
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
if (connection) {
NSLog(@"2. connection succeeded");
receivedData = [NSMutableData data];
} else {
NSLog(@"2. connection failed");
}
}
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
NSLog(@"3. didReceiveResponse");
[receivedData setLength:0];
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
[receivedData appendData:data];
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
NSLog(@"4. Connection failed! Error - %@ %@", [error localizedDescription], [[error userInfo] objectForKey:NSURLErrorFailingURLStringErrorKey]);
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSLog(@"4. Succeeded! Received %d bytes of data", [receivedData length]);
}
すべてのNSLog取り組んでいるが、それはreceivedDataが0バイトであると言って続けてここ
は、私は私のヘッダファイルで始まる、使用しているコードがあります。私は自分の問題に対する答えを見つけることができなかったので、私はこの質問で私の答えを見つけることができれば幸いです。
自動参照カウントにARCを使用しないでください。タグwikiを読んでください。 –
それは申し訳ありません –
Lars、ARCコードでは、 '@ property'は' retain'の代わりに 'strong'を使うべきです。また、なぜ '-connection:didReceiveData:'メソッドにログステートメントがないのですか? Andrew – adonoho