我正在尝试从NSURLConnection
委托中加载JSON数据,以将对象数组发送回调用它的tableview。
使用callback
初始化委托对象以发送回
NSArray *returnArray;
ResultsTableRoot *callback;
JSON处理方法
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
[connection release];
NSString *responseString = [[NSString alloc] initWithData:responseData
encoding:NSUTF8StringEncoding];
[responseData release];
NSError *error;
SBJSON *json = [[[SBJSON alloc] init] autorelease];
returnArray = [json objectWithString:responseString
error:&error];
[responseString release];
//////////////////////////////////////////////
// Send data back to table view
[callback resultsArrayReciever:returnArray];
}
无法从这里访问数组,tableview我想获取信息,但是这个方法被称为
-(void)resultsArrayReciever:(NSArray *)array {
// Code executed
if(array) {
// Code never executes, array isnt there
}
}
如果你有更好的方式去做这件事,那就非常受欢迎!!
答案 0 :(得分:1)
returnArray
可能是自动释放的。尝试在方法中保留/释放它。
如果是自动释放的,则内容将在您的运行循环中释放,因此在您想要访问它时就会消失。
答案 1 :(得分:0)
尝试保留对象:
NSError *error;
SBJSON *json = [[SBJSON new] autorelease];
returnArray = [[json objectWithString:responseString error:&error] retain];
[responseString release];
[callback resultsArrayReciever:returnArray];
[returnArray release];