2015-09-29 5 views
1

Я пытаюсь сделать Peek и Pop в моем приложении, поддерживающем iOS 9. Мнение в вопросе есть UITableView, так что я в моем коде:Peek in iOS 9 App Crashing

- (UIViewController *)previewingContext:(id<UIViewControllerPreviewing>)previewingContext viewControllerForLocation:(CGPoint)location { 

    // check if we're not already displaying a preview controller 
    if ([self.presentedViewController isKindOfClass:[WebViewController class]]) { 
     return nil; 
    } 

    // shallow press: return the preview controller here (peek) 
     self.webViewController = [[[WebViewController alloc] initWithNibName:@"WebViewController" bundle:[NSBundle mainBundle]] autorelease]; 




    return self.webViewController; 
} 
- (void)previewingContext:(id<UIViewControllerPreviewing>)previewingContext commitViewController:(UIViewController *)viewControllerToCommit { 

    // deep press: bring up the commit view controller (pop) 
    self.webViewController = [[[WebViewController alloc] initWithNibName:@"WebViewController" bundle:[NSBundle mainBundle]] autorelease]; 


    [self showViewController:self.webViewController sender:self]; 
} 

WebViewController является ViewController я уже настроен для отображения содержимого при выборе строки из Tableview. Ошибки я получаю:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSCFConstantString stringByAppendingString:]: nil argument' 
*** First throw call stack: 
(0x182160f5c 0x19764bf80 0x182160ea4 0x182fb8868 0x1001307a4 0x1876cf9ac 0x1876cf720 0x187a025f8 0x187960844 0x18796cde4 0x1876a91e4 0x182117c30 0x1821159d4 0x182115e04 0x182044dc0 0x18d4e0088 0x18771ef60 0x10014ca68 0x197e6a8b8) 
libc++abi.dylib: terminating with uncaught exception of type NSException 
+0

Похоже, хорошее время для google «Точка исключения исключений Xcode» –

+0

@GradyPlayer При этом приложение вылетает, прежде чем что-либо даже произойдет. С отключенной точкой останова она работает нормально до заглядывания. – user717452

+1

Похоже, вы активировали «все контрольные точки исключения». Например, если вы используете NSURLSession, это происходит немедленно, потому что они используют исключения для потока управления. Выберите «использовать только контрольные точки Objc». – HAS

ответ

2

Ваш журнал это точно говорят, что не так с вашим кодом:

- [__ NSCFConstantString stringByAppendingString]: ноль аргумент»

Вы выполняете stringByAppendingString, передающее значение nil

Кроме того, autorelease больше не используется, если вы используете ARC (по умолчанию он по умолчанию)