我的代碼低於使一個URL所涉及的連接,並獲取像HTTP代碼響應和最終URL有些報頭的響應(用於重定向的情況下):返回一個變量值的塊之外 - 的Objective-C,的iOS
- (NSString *)test
{
__block NSString *cod = @"x";
NSString *urlString = @" http://www.google.com ";
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url
cachePolicy:NSURLRequestReloadIgnoringCacheData
timeoutInterval:15.0f];
[request setHTTPMethod:@"HEAD"];
[NSURLConnection sendAsynchronousRequest:request
queue:[NSOperationQueue mainQueue]
completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse*)response;
NSURL *resolvedURL = [httpResponse URL];
NSString *code = [NSString stringWithFormat:@"%ld", (long)[httpResponse statusCode]];
NSLog(@"%@", resolvedURL);
NSLog(@"%@", code);
cod = @"y"; // the idea was use something like 'cod = code', then return 'code' at end.. But it dont works too.
}];
return cod; }
正如所看到的,我已宣佈鱈變量作爲__block
類型和x值設定。 裏面的塊,我已經設置了鱈魚的y值,但在方法結束時,我得到了鱈魚的x值。 我試過使用類似cod = code的東西,然後返回鱈魚,尊重對象類型,但是我在塊內部分配的任何東西,我無法獲得它之外的值。 我在做什麼錯?
備註:1.這與Xcode無關,它只是一個API和/或語言問題。 2.該語言稱爲Objective-C,不是客觀的c,操作系統是iOS,而不是ios。 – 2013-04-03 20:51:25