Я потратил несколько часов на поиск решения этой проблемы, но я даже не могу найти никого, кто испытал это, не говоря уже о решении.UIWebView внутри диспетчера навигации падает при вводе
В моем проекте у меня есть контроллер главного представления, который выталкивает второй контроллер представления, содержащий UIWebView. Оба контроллера просмотра встроены в контроллер навигации. Push-сегу и WebView подключаются с помощью IB.
Сегмент происходит так, как ожидалось, и веб-страница загружается и работает нормально, пока я не попытаюсь ввести. При нажатии на текстовое поле вызывает клавиатуру, но первое нажатие происходит сбой приложения и выдает ошибку:
-[NSNull length]: unrecognized selector sent to instance 0x1899068
2014-02-06 04:37:19.550 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSNull length]: unrecognized selector sent to instance 0x1899068'
*** First throw call stack:
(
0 CoreFoundation 0x0174d5e4 __exceptionPreprocess + 180
1 libobjc.A.dylib 0x014d08b6 objc_exception_throw + 44
...
Это происходит как в тренажере и на устройстве. Меня особенно смущает, потому что я не делаю ничего сложного. В контроллере представления, который содержит WebView, у меня есть следующий viewDidLoad:
- (void)viewDidLoad {
[super viewDidLoad];
NSURL *url = [NSURL URLWithString:@"http://www.google.com"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[self.webView loadRequest:request];
}
и никаких других кодов. Google используется в качестве примера здесь, но это происходит на каждом сайте, который я пробовал. Странно то, что если я удалю segue и представим веб-представление без родительского контроллера навигации, все будет хорошо, поэтому похоже, что контроллер nav имеет какое-то отношение к нему. Как я уже сказал, свойство webView подключается как выход IB. Я также попытался добавить его программно, но результат был таким же. Насколько я могу ничего не сказать в своем первом представлении, диспетчер должен иметь какое-либо влияние на это; как я сказал, это отрыв от игры. Я могу быть уверен, что передача длины в NSNull не является чем-то, что я делаю непосредственно сам, поскольку я не использую селектор длины в любом месте моего кода.
Любая помощь была бы принята с благодарностью.
Было предложено так сообщение полная ошибка заключается в следующем:
-[NSNull length]: unrecognized selector sent to instance 0x1899068
2014-02-06 05:18:29.607 AppName[859:70b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSNull length]: unrecognized selector sent to instance 0x1899068'
*** First throw call stack:
(
0 CoreFoundation 0x0174d5e4 __exceptionPreprocess + 180
1 libobjc.A.dylib 0x014d08b6 objc_exception_throw + 44
2 CoreFoundation 0x017ea903 -[NSObject(NSObject) doesNotRecognizeSelector:] + 275
3 CoreFoundation 0x0173d90b ___forwarding___ + 1019
4 CoreFoundation 0x0173d4ee _CF_forwarding_prep_0 + 14
5 CoreFoundation 0x016cd95c CFStringGetLength + 140
6 CoreFoundation 0x016e1284 CFStringCompareWithOptionsAndLocale + 52
7 Foundation 0x010db634 -[NSString compare:options:range:locale:] + 175
8 Foundation 0x010db580 -[NSString compare:options:range:] + 69
9 Foundation 0x010eda59 -[NSString caseInsensitiveCompare:] + 80
10 UIKit 0x00454f48 -[UIPhysicalKeyboardEvent _matchesKeyCommand:] + 280
11 UIKit 0x00398ac9 -[UIResponder(Internal) _keyCommandForEvent:] + 312
12 UIKit 0x00398b3b -[UIResponder(Internal) _keyCommandForEvent:] + 426
13 UIKit 0x00398b3b -[UIResponder(Internal) _keyCommandForEvent:] + 426
14 UIKit 0x00398b3b -[UIResponder(Internal) _keyCommandForEvent:] + 426
15 UIKit 0x00398b3b -[UIResponder(Internal) _keyCommandForEvent:] + 426
16 UIKit 0x00398b3b -[UIResponder(Internal) _keyCommandForEvent:] + 426
17 UIKit 0x00398b3b -[UIResponder(Internal) _keyCommandForEvent:] + 426
18 UIKit 0x00398b3b -[UIResponder(Internal) _keyCommandForEvent:] + 426
19 UIKit 0x00398b3b -[UIResponder(Internal) _keyCommandForEvent:] + 426
20 UIKit 0x00252176 -[UIApplication handleKeyHIDEvent:] + 226
21 UIKit 0x0023a07c _UIApplicationHandleEventQueue + 2954
22 CoreFoundation 0x016d683f __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
23 CoreFoundation 0x016d61cb __CFRunLoopDoSources0 + 235
24 CoreFoundation 0x016f329e __CFRunLoopRun + 910
25 CoreFoundation 0x016f2ac3 CFRunLoopRunSpecific + 467
26 CoreFoundation 0x016f28db CFRunLoopRunInMode + 123
27 GraphicsServices 0x036f29e2 GSEventRunModal + 192
28 GraphicsServices 0x036f2809 GSEventRun + 104
29 UIKit 0x0023ed3b UIApplicationMain + 1225
30 AppName 0x00003d3d main + 141
31 libdyld.dylib 0x01d8b70d start + 1
32 ??? 0x00000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
Вы пытались добавить точку останова для всех исключений? и если все еще не удается выяснить, возможно, вставьте все коды вокруг точки останова. Нам было бы легче помочь вам. –
@XuYin Я просто попробовал это, и я думаю, что проблема исходит из рамки? Весь код, отображаемый после разлома, представляет собой нагрузку сборки. Я определенно не отправляю длину в любом месте своего кода. – deergomoo
Не могли бы вы вставить все сообщение об ошибке? –