How to call JSON asynchronous in xcode/ iphone develope

Posted by Frames84 on Stack Overflow See other posts from Stack Overflow or by Frames84
Published on 2010-04-26T11:09:27Z Indexed on 2010/04/26 11:13 UTC
Read the original article Hit count: 526

Filed under:
|

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;

}

© Stack Overflow or respective owner

Related posts about xcode

Related posts about iphone