我有一个标签栏应用程序。一切正常,我可以在标签和所有内容之间切换,除非我切换到第二个标签ProductViewClass
时视图没有更新,它会在下面输出控制台输出。除了UIWebView和UILabel之外,我在此视图中没有任何内容。当我删除UIWebView它成功运行时,当我添加另一个它仍然有效。当我将IBOutlet从我的文件所有者连接到UIWebView时,它才会停止工作。除了合成和发布productWebView
之外,ProductWebView.m
中唯一的非模板代码就是:
NSString *urlString = @"http://www.google.com/";
NSURL *theURL = [NSURL URLWithString:urlString];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:theURL];
[productWebView loadRequest:urlRequest];
NSLog(@"Google loaded");
ProductWebView.h的整体如下:
#import <UIKit/UIKit.h>
@interface ProductViewClass : UIViewController {
IBOutlet UIWebView *productWebView;
}
@property(nonatomic, retain) UIWebView *productWebView;
@end
这是控制台输出:
This GDB was configured as "x86_64-apple-darwin".Attaching to process 52523.
2011-01-30 19:18:28.907 FairCom[52523:40b] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIViewController 0x4d06eb0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key productWebView.'
*** Call stack at first throw:
(
0 CoreFoundation 0x00da8be9 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x00efd5c2 objc_exception_throw + 47
2 CoreFoundation 0x00da8b21 -[NSException raise] + 17
3 Foundation 0x000296cf _NSSetUsingKeyValueSetter + 135
4 Foundation 0x0002963d -[NSObject(NSKeyValueCoding) setValue:forKey:] + 285
5 UIKit 0x004a88d6 -[UIRuntimeOutletConnection connect] + 112
6 CoreFoundation 0x00d1f2cf -[NSArray makeObjectsPerformSelector:] + 239
7 UIKit 0x004a72ed -[UINib instantiateWithOwner:options:] + 1041
8 UIKit 0x004a9081 -[NSBundle(UINSBundleAdditions) loadNibNamed:owner:options:] + 168
9 UIKit 0x00361a94 -[UIViewController _loadViewFromNibNamed:bundle:] + 70
10 UIKit 0x0035f709 -[UIViewController loadView] + 120
11 UIKit 0x0035f5e3 -[UIViewController view] + 56
12 UIKit 0x00372230 -[UITabBarController transitionFromViewController:toViewController:transition:shouldSetSelected:] + 120
13 UIKit 0x00370d86 -[UITabBarController transitionFromViewController:toViewController:] + 64
14 UIKit 0x00372b7e -[UITabBarController _setSelectedViewController:] + 263
15 UIKit 0x003729ed -[UITabBarController _tabBarItemClicked:] + 352
16 UIKit 0x002b1a6e -[UIApplication sendAction:to:from:forEvent:] + 119
17 UIKit 0x004af1f2 -[UITabBar _sendAction:withEvent:] + 422
18 UIKit 0x002b1a6e -[UIApplication sendAction:to:from:forEvent:] + 119
19 UIKit 0x003401b5 -[UIControl sendAction:to:forEvent:] + 67
20 UIKit 0x00342647 -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 527
21 UIKit 0x0034016c -[UIControl sendActionsForControlEvents:] + 49
22 UIKit 0x002b1a6e -[UIApplication sendAction:to:from:forEvent:] + 119
23 UIKit 0x003401b5 -[UIControl sendAction:to:forEvent:] + 67
24 UIKit 0x00342647 -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 527
25 UIKit 0x003411f4 -[UIControl touchesEnded:withEvent:] + 458
26 UIKit 0x002d60d1 -[UIWindow _sendTouchesForEvent:] + 567
27 UIKit 0x002b737a -[UIApplication sendEvent:] + 447
28 UIKit 0x002bc732 _UIApplicationHandleEvent + 7576
29 GraphicsServices 0x016dea36 PurpleEventCallback + 1550
30 CoreFoundation 0x00d8a064 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
31 CoreFoundation 0x00cea6f7 __CFRunLoopDoSource1 + 215
32 CoreFoundation 0x00ce7983 __CFRunLoopRun + 979
33 CoreFoundation 0x00ce7240 CFRunLoopRunSpecific + 208
34 CoreFoundation 0x00ce7161 CFRunLoopRunInMode + 97
35 GraphicsServices 0x016dd268 GSEventRunModal + 217
36 GraphicsServices 0x016dd32d GSEventRun + 115
37 UIKit 0x002c042e UIApplicationMain + 1160
38 FairCom 0x00001be0 main + 102
39 FairCom 0x00001b71 start + 53
40 ??? 0x00000001 0x0 + 1
)
terminate called after throwing an instance of 'NSException'
sharedlibrary apply-load-rules all
(gdb)
感谢您的帮助!
答案 0 :(得分:6)
你正在加载一个笔尖。在那个笔尖中,你有一个名为productWebView
的插座,可能是一个网页视图。您看到的例外情况是告诉您插座productWebView
实际上并不存在。这就是它变得奇怪的地方。该错误表示对象<UIViewController 0x4d06eb0>
是具有此缺失出口的对象。奇怪的是它所说的UIViewController
而不是实际的视图控制器子类的名称。听起来你有一个nib,其中File的Owner被设置为你的一个视图控制器子类,但在运行时你实际上只是直接使用UIViewController
的实例。您应该验证表示标签栏控制器中的选项卡的所有视图控制器是UIViewController
的实际正确子类,而不仅仅是UIViewController
本身的实例。