NSURLConnectionDelegate在运行时崩溃

时间:2011-02-21 21:45:44

标签: iphone nsurlconnection nsxmlparser

NSURLConnectionDelegate肯定会减少内存消耗,并有助于非常快速地解析数据。我使用了来自Apple商店的SeismicXML的逻辑并用于解析数据。但我的新关注是每当我“编译和调试”我的代码时,它运行正常。但是当我自己运行应用程序时,它不起作用。有没有人知道为什么当我独自运行它时它不会工作。我试图使用“构建和分析”我的代码,但它没有向我显示我的内存管理问题的任何错误。 我确实查看了崩溃的日志,这是我收到的:

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x000000007d89f87d
Crashed Thread:  0  Dispatch queue: com.apple.main-thread

Application Specific Information:
objc_msgSend() selector name: release
iPhone Simulator 235, iPhone OS 4.2 (iPhone/8C134)

Thread 0 Crashed:  Dispatch queue: com.apple.main-thread
0   libobjc.A.dylib                 0x01134a63 objc_msgSend + 23
1   UIKit                           0x004ab1e2 -[UITableViewCell removeFromSuperview] + 167
2   UIKit                           0x003249d9 -[UIView dealloc] + 340
3   UIKit                           0x0032e281 -[UIScrollView dealloc] + 341
4   UIKit                           0x003661ce -[UITableView dealloc] + 1085
5   CoreFoundation                  0x00ee9a6c CFRelease + 92
6   CoreFoundation                  0x00f0eb8d _CFAutoreleasePoolPop + 237
7   QuartzCore                      0x00d9a71c run_animation_callbacks(double, void*) + 359
8   QuartzCore                      0x00d9a589 CA::timer_callback(__CFRunLoopTimer*, void*) + 157
9   CoreFoundation                  0x00fb3fe3 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 19
10  CoreFoundation                  0x00fb5594 __CFRunLoopDoTimer + 1220
11  CoreFoundation                  0x00f11cc9 __CFRunLoopRun + 1817
12  CoreFoundation                  0x00f11240 CFRunLoopRunSpecific + 208
13  CoreFoundation                  0x00f11161 CFRunLoopRunInMode + 97
14  GraphicsServices                0x01874268 GSEventRunModal + 217
15  GraphicsServices                0x0187432d GSEventRun + 115
16  UIKit                           0x002fa42e UIApplicationMain + 1160
17  Tab_Table_Win                   0x00001d7c main + 102 (main.m:14)
18  Tab_Table_Win                   0x00001d0d start + 53

Thread 1:  Dispatch queue: com.apple.libdispatch-manager
0   libSystem.B.dylib               0x94470982 kevent + 10
1   libSystem.B.dylib               0x9447109c _dispatch_mgr_invoke + 215
2   libSystem.B.dylib               0x94470559 _dispatch_queue_invoke + 

3 个答案:

答案 0 :(得分:1)

这不是NSURLConnection的问题。你过度释放了一些UI组件(可能是一些表格或表格单元格)。

答案 1 :(得分:0)

最有可能是过度发布您的tableview的问题。

您使用的是UITableViewController吗?如果是这样的话,你不应该自己发布tableview(它看起来像你),否则检查你分配/释放它的位置,以确保你没有调用释放超过必要的。

否则发布您的视图控制器接口声明,以及您分配/访问表视图的代码(可能是您的viewDidLoad)和您的dealloc方法。

答案 2 :(得分:0)

 @Rog

这是我的代码,我正在使用我的UITableViewController并释放已分配的对象。仅供参考,我使用NSOperationQueue来解析我的XML文件并提取数据并解析它。

 @interface TableViewController : UITableViewController 
 {
  IBOutlet UITableView *eTableView;
  NSArray *cellNames;
  NSMutableArray *listArray;
  WinAppDelegate *appDelegate;

  }

  @property (nonatomic, retain) UITableView *eTableView;

  @property (nonatomic, retain) NSArray *cellNames;

  @property (nonatomic, retain) NSMutableArray *listArray;

  - (void)dealloc 
  {
  [cellNames release];
[eTableView release];
     [listArray release];
[super dealloc];
   }