[解決済み] Error: this class is not key value coding-compliant for key tableView.' [重複] を修正する方法。
質問
でアプリを作りました。
Table View
と
Segmented Control
初めてです。いくつかのコードとチュートリアルを使っていますが、うまくいきません。アプリを実行するとクラッシュしてしまい、ログにこのエラーが表示されます。
MyApplication[4928:336085] * キャッチできない例外 'NSUnknownKeyException', reason: '[ setValue:forUndefinedKey:]: this class is not key value coding-compliant for key tableView.' によりアプリを終了する。 * 最初のスローコールスタック。 ( 0 CoreFoundation 0x000000010516fd85 __exceptionPreprocess + 165 1 libobjc.A.dylib 0x0000000105504deb objc_exception_throw + 48 2 CoreFoundation 0x000000010516f9c9 -[NSException raise] + 9 3 Foundation 0x000000010364e19b -[NSObject(NSKeyValueCoding) setValue:forKey:] + 288 4 UIKit 0x0000000103c37d0c -[UIViewController setValue:forKey:] + 88 5 UIKit 0x0000000103e6e7fb -[UIRuntimeOutletConnection connect] + 109 6 CoreFoundation 0x00000001050a9890 -[NSArray makeObjectsPerformSelector:] + 224 7 UIKit 0x0000000103e6d1de -[UINib instantiateWithOwner:options:] + 1864 8 UIKit 0x0000000103c3e8d6 -[UIViewController _loadViewFromNibNamed:bundle:] + 381 9 UIKit 0x0000000103c3f202 -[UIViewController loadView] + 178 10 UIKit 0x0000000103c3f560 -[UIViewController loadViewIfRequired] + 138 11 UIKit 0x0000000103c3fcd3 -[UIViewController view] + 27 12 UIKit 0x000000010440b024 -[_UIFullscreenPresentationController _setPresentedViewController:] + 87 13 UIKit 0x0000000103c0f5ca -[UIPresentationController initWithPresentedViewController:presentingViewController:]. + 133 14 UIKit 0x0000000103c525bb -[UIViewController _presentViewController:withAnimationController:completion:] + 4002 15 UIKit 0x0000000103c5585c -[UIViewController _performCoordinatedPresentOrDismiss:animated:] + 489 16 UIKit 0x0000000103c5536b -[UIViewController presentViewController:animated:completion:] + 179 17 UIKit 0x00000001041feb8d __67-[UIStoryboardModalSegueTemplate newDefaultPerformHandlerForSegue:]_block_invoke + 243 18 UIKit 0x00000001041ec630 -[UIStoryboardSegueTemplate _performWithDestinationViewController:sender:] + 460 19 UIKit 0x00000001041ec433 -[UIStoryboardSegueTemplate _perform:] + 82 20 UIKit 0x00000001041ec6f7 -[UIStoryboardSegueTemplate perform:] + 156 21 UIKit 0x0000000103aa6a8d -[UIApplication sendAction:to:from:forEvent:] + 92 22 UIKit 0x0000000103c19e67 -[UIControl sendAction:to:forEvent:] + 67 23 UIKit 0x0000000103c1a143 -[UIControl _sendActionsForEvents:withEvent:] + 327 24 UIKit 0x0000000103c19263 -[UIControl touchesEnded:withEvent:] + 601 25 UIKit 0x0000000103b1999f -[UIWindow _sendTouchesForEvent:] + 835 26 UIKit 0x0000000103b1a6d4 -[UIWindow sendEvent:] + 865 27 UIKit 0x0000000103ac5dc6 -[UIApplication sendEvent:] + 263 28 UIKit 0x0000000103a9f553 _UIApplicationHandleEventQueue + 6660 29 CoreFoundation 0x0000000105095301 _CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION_ + 17 30 CoreFoundation 0x000000010508b22c __CFRunLoopDoSources0 + 556 31 CoreFoundation 0x000000010508a6e3 __CFRunLoopRun + 867 32 CoreFoundation 0x000000010508a0f8 CFRunLoopRunSpecific + 488 33 GraphicsServices 0x000000010726dad2 GSEventRunModal + 161 34 UIKit 0x0000000103aa4f09 UIApplicationMain + 171 35 ディクルス 0x00000001f26282 main + 114 36 libdyld.dylib 0x00000001064c392d start + 1 ) libc++abi.dylib: キャッチされないまま終了する
使用したコードは
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
let foodList:[String] = ["Bread", "Meat", "Pizza", "Other"]
let drinkList:[String] = ["Water", "Soda", "Juice", "Other"]
@IBOutlet weak var mySegmentedControl: UISegmentedControl!
@IBOutlet weak var myTableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
var returnValue = 0
switch(mySegmentedControl.selectedSegmentIndex) {
case 0:
returnValue = foodList.count
break
case 1:
returnValue = drinkList.count
break
default:
break
}
return returnValue
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let myCell = tableView.dequeueReusableCellWithIdentifier("myCells", forIndexPath: indexPath)
switch(mySegmentedControl.selectedSegmentIndex) {
case 0:
myCell.textLabel!.text = foodList[indexPath.row]
break
case 1:
myCell.textLabel!.text = drinkList[indexPath.row]
break
default:
break
}
return myCell
}
@IBAction func segmentedControlActionChanged(sender: AnyObject) {
myTableView.reloadData()
}
以下は main.ストーリーボード
何度もコードを確認しましたが、うまくいきません。まず、私は
Table View
このチュートリアルを見て、(
https://www.youtube.com/watch?v=ABVLSF3Vqdg
を使うのはどうかと思いました。
Segmented Control
チュートリアルのように しかし、まだうまくいきません。同じコード、同じエラーです。
誰かが私を助けることができますか?
解決方法は?
というアウトレットを想定したストーリーボードが設定されています。
tableView
が、実際のアウトレット名は
myTableView
.
ストーリーボードで接続を削除し、正しい変数名で再接続すれば、問題は解決するはずです。
関連
-
[解決済み】インスタンスメンバを型で使用することができない
-
[解決済み] これを解決するにはどうしたらいいのでしょうか。UILabel.textは、メインスレッドからのみ使用する必要があります。
-
[解決済み] Swiftの辞書にキーが含まれているかどうかを判断し、その値を取得する。
-
[解決済み] Swift 3でdispatch_onceはどうなる?
-
[解決済み] Swiftで#pragmaマーク?
-
[解決済み】Swiftで変数の型またはクラスを表示するにはどうすればよいですか?
-
[解決済み】String.substringWithRangeはどのように使うのですか?(または、SwiftでRangeはどのように動作しますか?)
-
[解決済み】Swiftの構造体のために、メンバーごとの初期化子をデフォルトで公開するにはどうすればよいですか?
-
[解決済み】iOS8でSwiftを使用して特定のViewControllerのステータスバーの色を変更する。
-
[解決済み】プロパティのゲッターとセッター
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Thread 1: signal SIGABRTエラーを解決するには?[クローズド]
-
[解決済み] スウィフト 2: !, ?-" オプション型「...」の値がアンラップされていない"
-
[解決済み] Swift presentViewController
-
[解決済み] XCTest の基礎となるモジュールをロードできない
-
[解決済み] SwiftはPass By ValueかPass By Referenceか
-
[解決済み] Swiftベースのアプリケーションは、OS X 10.9/iOS 7以下でも動作しますか?
-
[解決済み] Swiftではクロージャの内部では常に[unowned self]を使うべきか?
-
[解決済み】Swiftで変数の型またはクラスを表示するにはどうすればよいですか?
-
[解決済み】Swiftのオプション値とは何ですか?
-
[解決済み】iOS8でSwiftを使用して特定のViewControllerのステータスバーの色を変更する。