我在iPhone上使用ASIHTTPRequest来调用服务器,然后发送包含JSON文件的响应。我在基本层面上开展工作,但是当我将它添加到我的项目并打电话给服务器时,我的应用程序开始与bad_access崩溃。iPhone上的ASIHTTPRequest问题(内存?)
我把从viewDidLoad中调用这样:
requestModel = [[RequestModel alloc]init];
NSURL *url = [[NSURL URLWithString:@"myURL"]retain];
[requestModel eventsRequestFor:@"myUsername" password:@"myPassword" forURL:url];
这就要求在名为RequestModel另一个类的函数,我经过,并试图解开返回数组本身(大量的代码):
-(void)eventsRequestFor:(NSString*)username password:(NSString*)password forURL:(NSURL*)forURL {
//use ASIHTTPRequest to post to sever. Here you authenticate and recieve answer
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:forURL];
[request setUsername:username];
[request setPassword:password];
[request setDelegate:self];
[request setDidFailSelector:@selector(uploadFailed:)];
[request setDidFinishSelector:@selector(uploadFinished:)];
[request startAsynchronous];
[request release];
NSLog(@"Model called");
}
#pragma mark Model Delegates
- (void)uploadFinished:(ASIHTTPRequest *)request {
// Use when fetching text data
NSLog(@"upload start");
NSString *stringFromRequest = [[NSString alloc]init];
stringFromRequest = [request responseString];
[self buildArrayFromRequest:stringFromRequest];
//[stringFromRequest release];
}
- (void)uploadFailed:(ASIHTTPRequest *)request {
NSString *statusMessage = [request responseStatusMessage];
NSLog(@"%@",statusMessage);
NSError *error = [request error];
NSLog(@"%@",error);
}
-(void)buildArrayFromRequest:(NSString*)string {
NSArray *arrayFromData = [[NSArray alloc]init];
arrayFromData = [string yajl_JSON];
NSLog(@"This is the array from the JSON %@",[arrayFromData objectAtIndex:0]);
NSMutableArray *events = [[NSMutableArray alloc] init];
for(int i= 0; i < [arrayFromData count];i++)
{
/////code to unpack array
}
///here i try to populate table with unpacked array
FirstViewController *firstVC = [[FirstViewController alloc]init];
[firstVC createTableWithArray:events];
[firstVC release];
[arrayFromData release];
[events release];
}
关于我要去哪里的任何想法都是错误的?看起来我正在发布一个已经发布的对象,但我找不到它。
你能后的调用堆栈(从调试器)以及好吗? – deanWombourne 2011-01-21 17:56:12