blob: 3fe162f176ae073feb575624c214a23a62dcb828 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
//
// Fetcher.m
// PicCast
//
// Created by Matthew Handler on 4/26/11.
// Copyright 2011 Earl Industries. All rights reserved.
//
#import "Fetcher.h"
#import "PicCastAppDelegate.h"
@implementation Fetcher
@synthesize delegate;
+ (Fetcher *) initWithString:(NSString *)string andDelegate:(id<FetcherDelegate>)d {
Fetcher *fetcher = [[[Fetcher alloc] init] autorelease];
fetcher.delegate = d;
[fetcher setUrlAndConnect:string];
return fetcher;
}
- (Fetcher *) init {
receivedData = [[NSMutableData data] retain];
return self;
}
- (void) setUrlAndConnect:(NSString *)string {
NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString:string]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:30.0];
if ([NSURLConnection connectionWithRequest:theRequest delegate:self]) {
[receivedData setLength:0];
} else {
[PicCastAppDelegate prompt:@"Error" withMessage:@"No internet connection" andButtonTitle:@"shucks" withDelegate:self];
}
}
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
[receivedData setLength:0];
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
[receivedData appendData:data];
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
[delegate connection:connection failedWithError:error];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
[delegate connection:connection finishedWithData:receivedData];
}
- (void) dealloc {
[receivedData release];
[super dealloc];
}
@end
|