我通常不会问这样的问题,但我真的无法理解它。我有一个类“GetTableInfoFromDatabase”,它连接到我的数据库并下载一些 JSON。这在我的标签栏应用程序的第一个屏幕上效果很好。我可以尽可能多地调用 getNewData 方法来有效地刷新数据。
当我尝试创建“GetTableInfoFromDatabase”类的实例并从另一个选项卡调用相同的方法时,出现了我的问题。我收到以下错误:
*** -[GetTableInfoFromDatabase respondsToSelector:]: message sent to deallocated instance 0x1d89e830
有趣的是,我正在使用 ARC。罪魁祸首(在我看来)是 ASIHTTPRequest。我必须启用 -fno-objc-arc 才能编译项目。此库用于 GetTableInfoFromDatabase 类。
这是课程:
- (void) getEventDataWithSender:(id)sender{
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:@"-------.com/getdata.php"]];
[request setDelegate:self];
NSLog(@"Running!");
[request startAsynchronous];
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
self.managedObjectContext = appDelegate.managedObjectContext;
}
这就是我所说的:
GetTableInfoFromDatabase *getInfo = [[GetTableInfoFromDatabase alloc]init];
[getInfo getEventDataWithSender:self];
我什至改变了选项卡的顺序,所以第一个显示的选项卡只是调用这个方法,没有别的。甚至在“GetTableInfoFromDatabase”之前还没有被上次初始化它的类初始化。仍然崩溃。
有没有人有任何想法?这太令人沮丧了!