NSPredicate导致EXC_BAD_ACCESS - 但仅适用于设备上的Release配置

Sle*_*lee 0 iphone objective-c ipad

我的应用程序在我的设备上的任何配置和调试配置下都可以在模拟器中运行良好,但是一旦我创建NSPredicate,它就会在我正在执行的获取请求上崩溃.

这是违规代码:

- (void)searchBar:(UISearchBar *)theSearchBar textDidChange:(NSString *)searchText {
    //some fetch request code code

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ItemSKU CONTAINS[c] %@ OR ProductName CONTAINS[c] %@", searchText];

    // more code
}
Run Code Online (Sandbox Code Playgroud)

如果我删除这一行,一切都很完美,但我必须有这个谓词.

jer*_*jer 5

为什么你有两个格式说明符,只有一个得到一个值?它崩溃了,因为那不是定义的行为; 如果你提供两个%@格式说明符,给予searchText和其他东西,或者你会崩溃.