2011-01-31 6 views
0

私はタブバーアプリケーションを持っています。すべて正常に動作し、私は2番目のタブに切り替えるときを除いて、すべてのタブを細かく切り替えることができますProductViewClassビューは更新されず、コンソール出力は以下のように吐き出されます。このビューには、UIWebViewとUILabelを除いて、私は何も持っていません。 UIWebViewを削除すると正常に実行され、別のUIWebViewを追加しても機能します。ファイルのオーナーからUIWebViewにIBOutletを接続すると、動作が停止するだけです。 ProductWebView.mで唯一の非テンプレートコードを合成しproductWebViewを解放するだけでなく、このです:UIWebView投げNSUnknownKeyException iPad

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

[このクラスはキーの値に符合したキー値ではありません](http://stackoverflow.com/questions/3088059/this-class-is-not-key-value-coding-compliant-for)キー) – jtbandes

答えて

6

ペン先をロードしています。そのペン先には、productWebViewという名前のアウトレットがあります。おそらくWebビューに接続されています。あなたが見ている例外は、アウトレットproductWebViewが実際には存在しないことを伝えています。ここで奇妙なところがあります。このエラーは、オブジェクトが<UIViewController 0x4d06eb0>であり、このアウトレットがないことを示しています。変わったビットは、実際のView Controllerサブクラスの名前の代わりにUIViewControllerというところです。 File's OwnerがView Controllerのサブクラスの1つとして設定されているようですが、実際にはUIViewControllerのインスタンスを使用しているだけです。タブバーコントローラ内のタブを表すすべてのビューコントローラがUIViewControllerというインスタンスの代わりに、UIViewControllerの実際の正しいサブクラスであることを確認する必要があります。

+0

ありがとう!私は戻って私のUITabBarItemsを見て、彼らは特定のペン先/クラスに設定されていなかったので、なぜ彼らは全く働いたのだろうか? – SeniorShizzle