ΠΡΠ°ΠΊ, Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ΅ΠΎΡΠΈΠΈ, ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌ. Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΠΏΡΡΠ°Π΅ΠΌΡΡ ΡΠΎΠ±ΡΠ°ΡΡ HTML-ΠΊΠΎΠ½ΡΠ΅Π½Ρ Ρ Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΡ Apple, Π° ΠΏΠΎΡΠΎΠΌ Π²ΡΠ²Π΅Π΄Π΅ΠΌ ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅ Π² ΠΎΠΊΠ½Π΅ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ:
NSString *urlAsString = @"http://www.apple.com";
NSURL *url = [NSURL URLWithString: urlAsString];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL: url];
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
[NSURLConnection
sendAsynchronousRequest: urlRequest
queue: queue
completionHandler: ^(NSURLResponse *response,
NSData *data,
NSError *error) {
if ([data length] >0 &&
error == nil){
NSString *html = [[NSString alloc] initWithData: data
encoding: NSUTF8StringEncoding];
NSLog(@"HTML = %@", html);
}
else if ([data length] == 0 &&
error == nil){
NSLog(@"Nothing was downloaded.");
}
else if (error!= nil){
NSLog(@"Error happened = %@", error);
}
}];
ΠΠ°, Π²ΡΠ΅ ΡΠ°ΠΊ ΠΏΡΠΎΡΡΠΎ. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΈΠ»ΠΈ Π½Π° Π΄ΠΈΡΠΊ Π² Ρ ΠΎΠ΄Π΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΊΠ»Π°ΡΡΠ° NSData, ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΡΡ ΠΎΡ Π·Π°Π²Π΅ΡΡΠ°ΡΡΠ΅Π³ΠΎ Π±Π»ΠΎΠΊΠ°:
NSString *urlAsString = @"http://www.apple.com";
NSURL *url = [NSURL URLWithString: urlAsString];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL: url];
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
[NSURLConnection
sendAsynchronousRequest: urlRequest
queue: queue
completionHandler: ^(NSURLResponse *response,
NSData *data,
NSError *error) {
if ([data length] >0 &&
error == nil){
/* ΠΡΠΈΠΊΡΠ΅ΠΏΠ»ΡΠ΅ΠΌ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° ΠΊ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Ρ Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ. */
NSURL *filePath =
[[self documentsFolderUrl]
URLByAppendingPathComponent:@"apple.html"];
[data writeToURL: filePath atomically: YES];
NSLog(@"Successfully saved the file to %@", filePath);
}
else if ([data length] == 0 &&
error == nil){
NSLog(@"Nothing was downloaded.");
}
else if (error!= nil){
NSLog(@"Error happened = %@", error);
}
}];
ΠΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ. Π Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π½Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΡ iOS SDK ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΏΠΎ URL ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΠ»ΠΈ Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π΄Π΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π½ΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΡΡΠ°Π»Π° ΠΎΠ±ΡΡΠ½ΠΎΠΉ Π±Π»ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΈ Π²Π°ΠΌ Π½Π΅ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π΄Π΅Π»Π΅Π³Π°ΡΠΎΠ².
11.2. ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ ΠΏΡΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡΡ
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π΄Π°ΡΡ Π»ΠΈΠΌΠΈΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ β ΠΏΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, Π·Π°Π΄Π΅ΡΠΆΠΊΡ β ΠΏΡΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΈ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅
ΠΠ°Π΄Π°ΠΉΡΠ΅ Π·Π°Π΄Π΅ΡΠΆΠΊΡ Π² URL-Π·Π°ΠΏΡΠΎΡΠ΅, ΠΏΠΎΡΡΠ»Π°Π΅ΠΌΠΎΠΌ ΠΊΠ»Π°ΡΡΡ NSURLConnection.
ΠΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅
ΠΡΠΈ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠΈΠΏΠ° NSURLRequest Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ URL-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ° requestWithURL: cachePolicy: timeoutInterval:, ΠΎΡΠ½ΠΎΡΡΡΠΈΠΌΡΡ ΠΊ ΡΡΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΆΠ΅Π»Π°Π΅ΠΌΡΡ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°Ρ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ timeoutInterval.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ Π³ΠΎΡΠΎΠ²Ρ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 30 ΡΠ΅ΠΊΡΠ½Π΄ Π΄ΠΎΠΆΠΈΠ΄Π°ΡΡΡΡ, ΠΏΠΎΠΊΠ° Π·Π°Π³ΡΡΠ·ΠΈΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ Apple (Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ), ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π²Π°Ρ URL ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
β (BOOL) application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
NSString *urlAsString = @"http://www.apple.com";
NSURL *url = [NSURL URLWithString: urlAsString];
NSURLRequest *urlRequest =
[NSURLRequest
requestWithURL: url
cachePolicy: NSURLRequestReloadIgnoringLocalAndRemoteCacheData
timeoutInterval:30.0f];
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
[NSURLConnection
sendAsynchronousRequest: urlRequest
queue: queue
completionHandler: ^(NSURLResponse *response,
NSData *data,
NSError *error) {
if ([data length] >0 &&
error == nil){
NSString *html = [[NSString alloc] initWithData: data
encoding: NSUTF8StringEncoding];
NSLog(@"HTML = %@", html);
}
else if ([data length] == 0 &&
error == nil){
NSLog(@"Nothing was downloaded.");
}
else if (error!= nil){
NSLog(@"Error happened = %@", error);
}
}];
self.window = [[UIWindow alloc]
initWithFrame: [[UIScreen mainScreen] bounds]];
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
Π§ΡΠΎ ΠΆΠ΅ Π·Π΄Π΅ΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ? ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠ΅Π΄Π° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΡΠ°Π΅ΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ ΠΏΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ ΡΡΡΠ»ΠΊΠ΅. ΠΡΠ»ΠΈ ΡΡΠΎ ΡΠ΄Π°Π΅ΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½Π½ΡΡ 30 ΡΠ΅ΠΊΡΠ½Π΄ ΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π΄ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ β Ρ ΠΎΡΠΎΡΠΎ. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠ΅Π΄Π° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΠ΄Π°ΡΡ Π²Π°ΠΌ ΠΎΡΠΈΠ±ΠΊΡ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ (error) Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ Π·Π°Π²Π΅ΡΡΠ°ΡΡΠ΅Π³ΠΎ Π±Π»ΠΎΠΊΠ°.
11.3. Π‘ΠΈΠ½Ρ ΡΠΎΠ½Π½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ NSURLConnection
ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΡ ΠΏΠΎ ΠΈΠΌΠ΅ΡΡΠ΅ΠΌΡΡΡ URL.
Π Π΅ΡΠ΅Π½ΠΈΠ΅
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ ΠΊΠ»Π°ΡΡΠ° sendSynchronousRequest: returningResponse: error:, ΠΎΡΠ½ΠΎΡΡΡΠΈΠΉΡΡ ΠΊ ΠΊΠ»Π°ΡΡΡ NSURLConnection. ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° β Π΄Π°Π½Π½ΡΠ΅ ΡΠΈΠΏΠ° NSData.
ΠΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅
ΠΠΎΠ»ΡΠ·ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ° sendSynchronousRequest: returningResponse: error:, ΠΎΡΠ½ΠΎΡΡΡΠΈΠΌΡΡ ΠΊ ΠΊΠ»Π°ΡΡΡ NSURLConnection, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡΠ»Π°ΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ Π·Π°ΠΏΡΠΎΡ ΠΊ URL. Π ΡΠ΅ΠΏΠ΅ΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅! Π‘ΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π±Π»ΠΎΠΊΠΈΡΡΡΡ Π³Π»Π°Π²Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ. ΠΡΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠΈΡΡΡΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ, ΡΠΎ Π΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉ ΡΠ΅ΠΊΡΡΡΡ Π·Π°Π΄Π°ΡΡ, ΠΈ Π΅ΡΠ»ΠΈ ΡΡΠΎΡ ΠΏΠΎΡΠΎΠΊ Π½Π΅ Π³Π»Π°Π²Π½ΡΠΉ, ΡΠΎ Π³Π»Π°Π²Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΎΡΡΠ°Π½Π΅ΡΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠΌ. ΠΡΠ»ΠΈ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠΉ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π² GCD, Π° ΠΏΠΎΡΠΎΠΌ ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, ΡΠΎ Π²Ρ Π½Π΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΠ΅ Π³Π»Π°Π²Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ.
ΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°ΡΡ Π½Π°ΡΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ. Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΏΠΎΠΏΡΡΠ°Π΅ΠΌΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΠΌΠ°ΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ ΡΠ°ΠΉΡΠ° Yahoo!:
β (BOOL) application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
NSLog(@"We are hereβ¦");
NSString *urlAsString = @"http://www.yahoo.com";
NSURL *url = [NSURL URLWithString: urlAsString];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL: url];
NSURLResponse *response = nil;
NSError *error = nil;
NSLog(@"Firing synchronous url connectionβ¦");
NSData *data = [NSURLConnection sendSynchronousRequest: urlRequest
returningResponse:&response
error:&error];
if ([data length] > 0 &&
error == nil){
NSLog(@"%lu bytes of data was returned.", (unsigned long)[data length]);
}
else if ([data length] == 0 &&
error == nil){
NSLog(@"No data was returned.");
}
else if (error!= nil){
NSLog(@"Error happened = %@", error);
}
NSLog(@"We are done.");
self.window = [[UIWindow alloc] initWithFrame:
[[UIScreen mainScreen] bounds]];
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
ΠΡΠ»ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π° ΠΏΠΎΡΠΎΠΌ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π² ΠΎΠΊΠ½ΠΎ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, ΡΠΎ ΡΠ°ΠΌ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ Π²ΡΠ²Π΅Π΄Π΅Π½ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
We are hereβ¦
Firing synchronous url connectionβ¦
2 52117 bytes of data was returned.
We are done.
ΠΡΠ°ΠΊ, Π²ΠΏΠΎΠ»Π½Π΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π½Π°ΠΏΠΈΡΠ°Π» Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΡΡΡΠΎΠΊΡ We are hereβ¦, Π΄ΠΎΠΆΠ΄Π°Π»ΡΡ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ (ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, Π±Π»ΠΎΠΊΠΈΡΡΡΡΠ΅Π΅ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ), Π° ΠΏΠΎΡΠΎΠΌ Π²ΡΠ²Π΅Π» Π² ΠΎΠΊΠ½Π΅ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΡΠ΅ΠΊΡΡ We are done. Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠΎΠ²Π΅Π΄Π΅ΠΌ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½Ρ. ΠΠΎΠΌΠ΅ΡΡΠΈΠΌ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠΉ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π² GCD, ΡΠΎ Π΅ΡΡΡ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠΌ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌ, ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ:
β (BOOL) application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
NSLog(@"We are hereβ¦");
NSString *urlAsString = @"http://www.yahoo.com";
NSLog(@"Firing synchronous url connectionβ¦");
dispatch_queue_t dispatchQueue =
dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(dispatchQueue, ^(void) {
NSURL *url = [NSURL URLWithString: urlAsString];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL: url];
NSURLResponse *response = nil;
NSError *error = nil;
NSData *data = [NSURLConnection sendSynchronousRequest: urlRequest
returningResponse:&response
error:&error];
if ([data length] > 0 &&
error == nil){
NSLog(@"%lu bytes of data was returned.", (unsigned long)[data length]);
}
else if ([data length] == 0 &&
error == nil){
NSLog(@"No data was returned.");
}
else if (error!= nil){
NSLog(@"Error happened = %@", error);
}
});
NSLog(@"We are done.");
self.window = [[UIWindow alloc] initWithFrame:
[[UIScreen mainScreen] bounds]];