2009-08-10 4 views
0

им с помощью этого метода на didselectrow UITableViewCell вПоказатель индикатора активности SHOWing с использованием Thread Shows Эта ошибка в gdb?

[NSThread detachNewThreadSelector:@selector(showMyWaitView) toTarget:self withObject:nil]; 

он отлично работает, но он показывает ошибку в GDB, как этого

2009-08-10 12: 45: 01,313 Флэшкарты [1209: 6307] * _NSAutoreleaseNoPool(): Object 0x458200 класса UIView autoreleased, без бассейна на месте - просто утечка Stack: (0x907d7adf 0x906e41f2 0x29a6 0x906eabad 0x906ea754 0x93e2d6f5 0x93e2d5b2) 2009-08-10 12: 45: 01,314 Флэшкарты [1209: 6307] * _NSAutoreleaseNoPool (): Объект 0x2a0e8 класса NSCFString автореализован без пула на месте - только утечка Stack: (0x907d7adf 0x906e41f2 0x30ad10b0 0x30ad12e6 0x29c5 0x906eabad 0x906ea754 0x93e2d6f5 0x93e2d5b2)

я также попытался таймером, но это не сработало

моего Таймера кода является Этим

MyTimer = [NSTimer timerWithTimeInterval: 0.01 target: self selector: @selector (showMyWaitView) userInfo: nil repeatats: NO]; [[NSRunLoop mainRunLoop] addTimer: MyTimer forMode: NSDefaultRunLoopMode];

я также попробовал этот

MyTimer = [NSTimer scheduledTimerWithTimeInterval:0.0001 target:self selector:@selector(showMyWaitView) userInfo:nil repeats:NO]; 

[NSThread sleepForTimeInterval: 0,03];

и это мой метод showMyWaitView

-(void)showMyWaitView 
{ 
[self.view addSubview:MyWaitViewObj.view]; 
} 

вот мой сделал метод selectrow

if(MyWaitViewObj==nil) 
{ 
    MyWaitViewObj = [[MyWaitViewController alloc] initWithNibName:@"MyWaitView" bundle:nil]; 
} 

//MyTimer = [NSTimer scheduledTimerWithTimeInterval:0.0001 target:self selector:@selector(showMyWaitView) userInfo:nil repeats:NO]; 
MyTimer = [NSTimer timerWithTimeInterval:0.01 target:self selector:@selector(showMyWaitView) userInfo:nil repeats:NO]; 
[[NSRunLoop mainRunLoop] addTimer:MyTimer forMode: NSDefaultRunLoopMode]; 
[NSThread detachNewThreadSelector:@selector(showMyWaitView) toTarget:self withObject:nil]; 
//[NSThread sleepForTimeInterval:0.03]; 

[indexTableView deselectRowAtIndexPath:indexPath animated:YES]; 
categoryId = [[listOfCategoryId objectAtIndex:indexPath.section] intValue]; 
categoryType=[[listOfCategoryType objectAtIndex:indexPath.section] intValue]; 
[self getFlashCard:categoryId]; 
flashcardid = [[flashCardsId objectAtIndex:indexPath.row] intValue]; 
//NSLog(@"%s %d %s", __FILE__, __LINE__, __PRETTY_FUNCTION__, __FUNCTION__); 
    if(MyPageViewControllerObj==nil) 
    { 
     MyPageViewController *vController= [[MyPageViewController alloc] initWithNibName:@"MyPageView" bundle:[NSBundle mainBundle]]; 
     self.MyPageViewControllerObj=vController; 
     [vController release]; 
    } 
    // 

    MyPageViewControllerObj.sessionid=sessionid; 
    MyPageViewControllerObj.categoryID = categoryId; 
    MyPageViewControllerObj.flashcardIdforcount = flashcardid; 
    MyPageViewControllerObj.categoryType=categoryType; 
    MyPageViewControllerObj.indexViewControllerobj=self; 
    [self.navigationController pushViewController:MyPageViewControllerObj animated:YES]; 
    [MyPageViewControllerObj refreshMyPageView]; 
    //[MyPageViewControllerObj release]; 
    NSLog(@"My MySlidingController View Ka retain Count=%d",[MyPageViewControllerObj retainCount]); 
[MyWaitViewObj.view removeFromSuperview]; 

как я показывать индикатор активности с помощью таймера, пожалуйста, помогите мне или сказать мне это будет GDB ошибка причина приложения crash

ответ

1

Если вы создаете Thread, вам нужно настроить цикл выполнения и создать NSAutoreleasePool для этого потока, который будет выпущен, когда T выходы за пределы. Проблема в том, что вы не делаете ни того, что вы стреляете из своего селектора. Ваш showMyWait должен создать пул выхода из NSThread documentation

Для приложений, не являющихся сборщика мусора, метод aSelector является ответственности за создание autorelease бассейна для вновь отдельных нитей и освобождая этот пул перед тем он выходит. Собрание мусора приложений не нужно создавать пул автообновлений .

+0

Можете ли вы изменить мой код –

+1

@Rahul - Изменение вашего кода для вас не поможет вам учиться. Вам рассказали, что вам нужно сделать, и в документации есть дополнительная информация, которая была любезно связана с вами. – Jasarien

+0

спасибо, что ваш ответ сработал. Получение этого в пуле автоматического выпуска –

1

Все обновления пользовательского интерфейса must быть сделаны на основной теме.

 Смежные вопросы

  • Нет связанных вопросов^_^