tags:

views:

171

answers:

0

I'm using the JSON framework hosting on Google. What and it's a news app that loads JSON feeds, when app goes off to load the feed I want to display the UIActivityIndicatorView but I've found my JSON Access code is not being called asynchronous which is locking the user interface. I have highlighted the function in the code and can't figuree out without breaking how to change the code.

#import "JSON DataAccess Wrapper.h"

#import "JSON.h"


@implementation JSON_DataAccess_Wrapper



@synthesize dataItemList;





//////////////////////////////////////////////

/* START FEED CONNECTION/ HANDLE METHODS   */

//////////////////////////////////////////////





- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {

[responseData setLength:0];

}



- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {

[responseData appendData:data];

}



- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {

//label.text = [NSString stringWithFormat:@"Connection failed: %@", [error description]];

}



- (void)connectionDidFinishLoading:(NSURLConnection *)connection {

[connection release];

}



- (NSString *)stringWithUrl:(NSURL *)url

{

NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url 

cachePolicy:NSURLRequestReturnCacheDataElseLoad

timeoutInterval:30];


NSData *urlData;

NSURLResponse *response = nil;

NSError *error = nil;

/*
HOW TO MAKE THE CALL BELOW ASYNCHRONOUS
*/

urlData = [NSURLConnection sendSynchronousRequest:urlRequest 

returningResponse:&response 

error:&error];


return [[NSString alloc] initWithData:urlData encoding:NSUTF8StringEncoding];


}



-(id) objectWithUrl:(NSURL *)url

{

SBJSON *jsonParser = [SBJSON new];

NSString *jsonString = [self stringWithUrl:url];


return [jsonParser objectWithString:jsonString error:NULL];

}





- (NSMutableArray *) downloadJSONFeed

{

    id response = [self objectWithUrl:[NSURL  URLWithString:@"http://www.mysite.co.uk/index2.php?option=JSON"]];


NSMutableArray *feed = (NSMutableArray *) response;


return feed;

}