1

我正在尝试在支持 iOS 9 的应用程序中进行 Peek and Pop。有问题的视图有一个 UITableView,所以我的代码中有:

- (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];
}

WebViewControllerViewController我已经设置为在选择 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
4

1 回答 1

2

您的日志准确地说明了您的代码有什么问题:

-[__NSCFConstantString stringByAppendingString:]: 无参数'

您正在执行stringByAppendingString传递的值是nil

此外,autorelease如果您使用 ARC,则不再使用(现在是默认设置)

于 2015-09-29T15:56:36.040 回答