Переключение видов с кнопок AlertView - PullRequest
0 голосов
/ 04 октября 2010

Приложение:

Имеет 3 просмотра. Виды A, B, C.Существует оповещение на виде B с двумя кнопками.

Что я делаю:

Я перехожу из вида A в вид B. На B я нажимаюна кнопку Alert, чтобы вернуть меня на View A.

Проблема:

Когда я нажимаю на кнопку, чтобы снова перейти к View B, появляется ошибкав свойство isValid таймера.Таймер объявляется и используется в представлении B. В других случаях, когда я использую пользовательскую кнопку для переключения между A и B, он работает нормально.

Строка, в которой я получаю сообщение об ошибке: BOOL dec =[timer isValid];

Что может быть не так ??


КОД ДЛЯ КНОПКИ АВАРИЙНОГО ВИДА ДЛЯ ПЕРЕКЛЮЧЕНИЯ ВИДОВ ЕСТЬ

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{

        if(buttonIndex == 0)
        {
             [self dismissModalViewControllerAnimated:YES];
          }
 }

КОД, ГДЕ ПРОБЛЕМА ПРОХОДИТ, КОГДА ПЕРЕКЛЮЧЕНИЕ ВЕРНУТЬСЯ К ОДНОМУ ВИДУ:

 -(void)viewWillAppear:(BOOL)animated
 {

        BOOL dec = [timer isValid];

        NSLog(@"TIMER CHECK");

       if (dec == YES)
       {
           [timer invalidate];
       }    
 }

ОШИБКА, которая отображается в NSLOG:

 -[__NSCFType isValid]: unrecognized selector sent to instance 0x5996870
2010-10-04 15:49:00.630 sqlite[5263:207] *** Terminating app due to uncaught exception     'NSInvalidArgumentException', reason: '-[__NSCFType isValid]: unrecognized selector sent to   instance 0x5996870'
 *** Call stack at first throw:
(
    0   CoreFoundation                      0x023e9919 __exceptionPreprocess + 185
    1   libobjc.A.dylib                     0x025665de objc_exception_throw + 47
    2   CoreFoundation                      0x023eb42b -[NSObject(NSObject) does    NotRecognizeSelector:] + 187
    3   CoreFoundation                      0x0235b116 ___forwarding___ + 966
    4   CoreFoundation                      0x0235acd2 _CF_forwarding_prep_0 + 50
    5   sqlite                              0x0000393b -[sqliteViewController viewWillAppear:] + 622
    6   UIKit                               0x0055775d -[UIWindowController transition:fromViewController:toViewController:target:didEndSelector:] + 5402
    7   UIKit                               0x0036e769 -[UIViewController presentModalViewController:withTransition:] + 2937
    8   UIKit                               0x00367a5e -[UIViewController _tryRecursivelyPresentModalViewController:withTransition:] + 134
    9   UIKit                               0x0036df42 -[UIViewController presentModalViewController:withTransition:] + 850
     10  sqlite                              0x00005d8a -[StartPageViewController startQuiz:] + 68
    11  UIKit                               0x002c2e14 -[UIApplication sendAction:to:from:forEvent:] + 119
    12  UIKit                               0x0034c6c8 -[UIControl sendAction:to:forEvent:] + 67
    13  UIKit                               0x0034eb4a -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 527
    14  UIKit                               0x0034d6f7 -[UIControl touchesEnded:withEvent:] + 458
    15  UIKit                               0x002e62ff -[UIWindow _sendTouchesForEvent:] + 567
    16  UIKit                               0x002c81ec -[UIApplication sendEvent:] + 447
    17  UIKit                               0x002ccac4 _UIApplicationHandleEvent + 7495
    18  GraphicsServices                    0x02c04afa PurpleEventCallback + 1578
    19  CoreFoundation                      0x023cadc4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
    20  CoreFoundation                      0x0232b737 __CFRunLoopDoSource1 + 215
    21  CoreFoundation                      0x023289c3 __CFRunLoopRun + 979    
    22  CoreFoundation                      0x02328280 CFRunLoopRunSpecific + 208 
    23  CoreFoundation                      0x023281a1 CFRunLoopRunInMode + 97
    24  GraphicsServices                    0x02c032c8 GSEventRunModal + 217
    25  GraphicsServices                    0x02c0338d GSEventRun + 115
    26  UIKit                               0x002d0b58 UIApplicationMain + 1160
    27  sqlite                              0x00002910 main + 102
    28  sqlite                              0x000028a1 start + 53
)
 terminate called after throwing an instance of 'NSException'

1 Ответ

0 голосов
/ 13 октября 2010

Есть причина для этого.Я пытался сделать недействительным уже недействительный таймер.В любом случае спасибо

...