아래 나열된 NSURLConnection을 사용하고 있습니다. 이 수업에 관해 세 가지 질문이 있습니다. 내가 URL 값을 연결할 때, 디버거는 라인 그 위에 두 번하지만이 줄을 명중 :NSURL 연결 실패 질문
if (theConnection){
내가 EXC_BAD_ACCESS를 얻을 두 번째 시간. 첫 번째 URL 할당 (주석 처리 된)을 사용하면 문제가 없습니다.
1.) 차이점은 무엇입니까?
- (void)applicationDidFinishLaunching:(UIApplication *)application {
//NSString *url = @"http://www.abc.com/afile.mp4";
NSString *temp = @"afile.mp4";
NSString *url = [@"http://www.abc.com/" stringByAppendingString:temp];
theRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]
cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:30.0];
[url release];
NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
if (theConnection) {
receivedData=[[NSMutableData data] retain];
}
2) 나는 afile.mp 할 파일의 이름을 변경하는 경우, 요청 및 [receivedData 길이] 통과는
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
을 당한다 1600의 값을가집니다. receivedData에 요청중인 실제 데이터가 있는지 정확하게 확인하는 방법이 있습니까? 대상 파일은 약 7MB이지만 1.5MB에서 9MB까지 다양합니다. 내가 요청한 리소스는 없었지만 아무것도 표시하지 않습니까?
3.) 내 응용 프로그램 대리인에서이 작업을 수행하고 있습니다. 유일한 프로토콜은 UIApplicationDelegate입니다. NSURLConnection 메서드는 대리자가 없으면 어떻게 작동합니까?
1.) 어떻게 할 수 있습니까? 둘 다 할당하지 마십시오. 2.) 응답 코드를 말할 때, 파일명 또는 MIMEType을 의미합니까? 응답 코드가 표시되지 않습니다. 3.) 차가운 - 문서화 된 곳은 어디입니까? 감사. – 4thSpace
1. 말했듯이 ref-counting 방법은 문자열 리터럴 객체에 대한 no-ops입니다. 그러나 그것에 의지하지 마십시오. 또한 내가 말했듯이, 당신이 할당하지 않았다는 것을 안다 : 그래서 그것을 풀어서는 안된다. 2. 아니오, 응답 코드를 의미했습니다. 내가 말한 위임 메서드를 구현하십시오. 3. NSURLConnection 문서에서. –
응답 개체 (위임 메서드에서)를 받으면 statusCode 메시지를 보내 응답 코드를받습니다. http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSHTTPURLResponse_Class/Reference/Reference.html#//apple_ref/occ/instm/NSHTTPURLResponse/statusCode –