Мое приложение, когда пользователь открывает его, запускает NSThread для загрузки новых данных (анализ файла xml).
это код (в AppDelegate.m):
- (void)applicationDidBecomeActive:(UIApplication *)application {
NSThread* parse_thread = [[NSThread alloc] initWithTarget:self selector:@selector(load_data) object:nil];
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
[parse_thread start];
[parse_thread release]; //is it right?
-(void)load_data{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
... //here the parser
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
[pool release];
[NSThread exit];
}
Работает отлично!
В первом представлении есть табличное представление: первая ячейка должна прочитать GPS-координату пользовательской позиции и проанализировать другие данные из URL.
это код (в myview.m):
- (void)locationUpdate:(CLLocation *)location {
loc = location;
[locationController.locationManager stopUpdatingLocation];
NSThread *parse_2 = [[NSThread alloc] initWithTarget:self selector:@selector(load_data_2) object:nil];
[parse_2 start];
[parse_2 release];
}
-(void)load_data_2{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init];
//here the parse
[pool release];
[NSThread exit];
}
так что ... когда пользователь касается этой ячейки, приложение вылетает! И на консоли нет ни одного лога!
(если вызывать метод без использования NSThread
[self load_data_2];
работает без проблем!
Вы знаете, что я делаю не так?