how to place an asynchronous url request
<p>I am new to iPhone development. I have a small problem with synchronous requests, I am posting my code here, I want to change the synchronous request to asynchronous but i don't known much about asynchronous requests so can anybody can help me to change the synchronous request to asynchronous, please see the code below.</p>

<pre><code>-(NSMutableArray *)allDownloadLinks {

@try {

    //initialise an NSMutableArray  
   appDelegate.allDownloadLinksArray = [[NSMutableArray alloc]init];

    //getting the view source of website in string format
    NSString *viewSourceOfWebSiteInStringFormat = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://www.audiotreasure.com/indexKJV.htm"] encoding:NSUTF8StringEncoding error:nil];
    NSError *error;

    //place a regular expression with the pattern in which format strings we want 
    NSRegularExpression *regularExpression = [NSRegularExpression regularExpressionWithPattern:@"href=\"(.*).zip\"" options:NSRegularExpressionCaseInsensitive error:&amp;error];

    //get the matches which are suitable in the string with the regular expression and place all those matches into an array
    NSArray *matchesWithAPatternInViewSource = [regularExpression matchesInString:viewSourceOfWebSiteInStringFormat options:0 range:NSMakeRange(0, [viewSourceOfWebSiteInStringFormat length])];

    //check the condition and enter into for loop for every matched string
    for (NSTextCheckingResult *matches in matchesWithAPatternInViewSource) {

        NSRange matchRange = [matches range];

        //getting the string which is suitable to the regular expression pattern
        NSString *matchedStringWithAPatternInViewSource = [viewSourceOfWebSiteInStringFormat substringWithRange:matchRange];

        //search the range of the string .zip from the matched string
        NSRange rangeOfSubstringZipInMatchedString = [matchedStringWithAPatternInViewSource rangeOfString:@".zip"];

        //string we are getting after deleting the .zip from the matched string
        NSString *stringAfterDeleteTheZipFromMatchedString = [matchedStringWithAPatternInViewSource substringToIndex:rangeOfSubstringZipInMatchedString.location];

        //range of substring mp3 from the matched string after deleting the .zip
        NSRange rangeOfSubstringMp3InMatchedString = [stringAfterDeleteTheZipFromMatchedString rangeOfString:@"mp3"];

        //from the matched string after deleting the .zip from that delete the string which is having before mp3
        NSString *stringAfterDeleteTheStringBeforemp3 = [stringAfterDeleteTheZipFromMatchedString substringFromIndex:rangeOfSubstringMp3InMatchedString.location];

        //add the string which we getting finally to the allDownloadLinksArray
        [appDelegate.allDownloadLinksArray addObject:stringAfterDeleteTheStringBeforemp3];
    }
    return appDelegate.allDownloadLinksArray;
    }


@catch(NSException * e){NSLog(@"Exception At36: %s %d %s %s %@",__FILE__,__LINE__,__PRETTY_FUNCTION__,__FUNCTION__,e);}@finally{}
}
</code></pre>
