NSURLConnectionDelegate дает сбой при запуске - PullRequest
0 голосов
/ 22 февраля 2011

NSURLConnectionDelegate, безусловно, снижает потребление памяти и помогает очень быстро анализировать данные. Я использовал логику из SeismicXML из Apple Store и использовал для анализа данных. Но моя новая проблема заключается в том, что всякий раз, когда я выполняю «сборку и отладку» своего кода, он работает нормально. но когда я запускаю приложение само по себе, оно не работает. Есть ли у кого-нибудь идеи, почему это не сработает, когда я запускаю его самостоятельно? Я пытался использовать «построить и проанализировать» мой код, но он не показал мне никакой ошибки в моих проблемах управления памятью. Я заглянул в журналы аварии и вот что я получаю:

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 ]

1 голос
/ 22 февраля 2011

Это не проблема с NSURLConnection. Вы перевыпускаете некоторые из ваших компонентов пользовательского интерфейса (предположительно, некоторую таблицу или ячейку таблицы).

0 голосов
/ 22 февраля 2011
 @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];
   }
0 голосов
/ 22 февраля 2011

Скорее всего, проблема с чрезмерным освобождением вашего табличного представления.

Используете ли вы UITableViewController?Если это так, вам не следует выпускать просмотр таблицы самостоятельно (и похоже, что вы это делаете), в противном случае проверьте, где вы размещаете / отпускаете его, чтобы убедиться, что вы не вызываете release больше, чем это необходимо.

В противном случаеопубликуйте объявление интерфейса вашего контроллера представления, а также код, в котором вы размещаете / обращаетесь к вашему табличному представлению (вероятно, к вашему viewDidLoad) и к вашему методу dealloc.

...