質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

Q&A

3回答

29511閲覧

xcodeエラー 「terminating with uncaught exception of type NSException」

退会済みユーザー

退会済みユーザー

総合スコア0

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

0グッド

1クリップ

投稿2015/04/08 16:26

編集2015/04/09 02:01

###概要
初心者です。ボタンを押すとテキストが切り替わるようなものを作ろうと思い、UIKitを使って以下を記述しました。

import UIKit class ViewController: UIViewController { @IBOutlet weak var myLabel: UILabel! @IBAction func buttonPressed(sender: AnyObject) { myLabel.text = "Button Pressed!" }

しかし、シミュレータを立ち上げようとするとクラッシュし、以下の様なエラーが出ます。どうすれば解決できるでしょうか?

「this class is not key value coding-compliant for the key myButton」が問題だとは分かるのですが、対処法が分かりませんでした。

【エラー箇所】AppDelegate.swift

class AppDelegate: UIResponder, UIApplicationDelegate {

【ログ】

2015-04-09 10:33:50.495 ButtonTutorial[9866:505128] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<ButtonTutorial.ViewController 0x7ff94143bfb0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key myButton.' *** First throw call stack: ( 0 CoreFoundation 0x00000001026bea75 __exceptionPreprocess + 165 1 libobjc.A.dylib 0x0000000104216bb7 objc_exception_throw + 45 2 CoreFoundation 0x00000001026be6b9 -[NSException raise] + 9 3 Foundation 0x0000000102ad9d43 -[NSObject(NSKeyValueCoding) setValue:forKey:] + 259 4 CoreFoundation 0x00000001026085e0 -[NSArray makeObjectsPerformSelector:] + 224 5 UIKit 0x00000001032184ed -[UINib instantiateWithOwner:options:] + 1506 6 UIKit 0x0000000103076a88 -[UIViewController _loadViewFromNibNamed:bundle:] + 242 7 UIKit 0x0000000103077078 -[UIViewController loadView] + 109 8 UIKit 0x00000001030772e9 -[UIViewController loadViewIfRequired] + 75 9 UIKit 0x000000010307777e -[UIViewController view] + 27 10 UIKit 0x0000000102f96509 -[UIWindow addRootViewControllerViewIfPossible] + 58 11 UIKit 0x0000000102f968a1 -[UIWindow _setHidden:forced:] + 247 12 UIKit 0x0000000102fa2f8c -[UIWindow makeKeyAndVisible] + 42 13 UIKit 0x0000000102f4d0c2 -[UIApplication _callInitializationDelegatesForMainScene:transitionContext:] + 2732 14 UIKit 0x0000000102f4fe3e -[UIApplication _runWithMainScene:transitionContext:completion:] + 1349 15 UIKit 0x0000000102f4ed35 -[UIApplication workspaceDidEndTransaction:] + 179 16 FrontBoardServices 0x0000000105dc8243 __31-[FBSSerialQueue performAsync:]_block_invoke + 16 17 CoreFoundation 0x00000001025f3c7c __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12 18 CoreFoundation 0x00000001025e99c5 __CFRunLoopDoBlocks + 341 19 CoreFoundation 0x00000001025e9785 __CFRunLoopRun + 2389 20 CoreFoundation 0x00000001025e8bc6 CFRunLoopRunSpecific + 470 21 UIKit 0x0000000102f4e7a2 -[UIApplication _run] + 413 22 UIKit 0x0000000102f51580 UIApplicationMain + 1282 23 ButtonTutorial 0x00000001024dfede top_level_code + 78 24 ButtonTutorial 0x00000001024dff1a main + 42 25 libdyld.dylib 0x00000001049f2145 start + 1 ) libc++abi.dylib: terminating with uncaught exception of type NSException (lldb)

###開発環境

  • iOS:8.2
  • Xcode:6.2
  • 使用言語:swift
  • ios Simulator:iphone6

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ストーリーボードの以下の"ViewController"や"View",ボタン等をクリックして
![イメージ説明]WIDTH:600

Utilityの
![イメージ説明]WIDTH:520

この辺りが正しくつながっているかなど見てみるといいと思われます。
間違っていた場合、バツボタンで消して繋ぎ直してみたらよいかと。

投稿2015/04/09 02:50

編集2015/04/09 02:59
Ryo87

総合スコア14

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Ryo87

2015/04/09 03:00

画像大きくてすみません。
Yussa

2018/04/28 10:53

サンキューです。ReferencingOutletsにactionの関数が紐付いててエラーになってました。
guest

0

こんにちは。

下記は、僕のところで検証したソースコードとスクリーンショットです。ご参考いただければ幸いです。

lang

1import UIKit 2 3class ViewController: UIViewController { 4 5 override func viewDidLoad() { 6 super.viewDidLoad() 7 // Do any additional setup after loading the view, typically from a nib. 8 } 9 10 override func didReceiveMemoryWarning() { 11 super.didReceiveMemoryWarning() 12 // Dispose of any resources that can be recreated. 13 } 14 15 @IBOutlet var myLabel: UILabel! 16 17 @IBOutlet var myButton: UIButton! 18 19 @IBAction func myButtonPressed(sender: AnyObject) { 20 myLabel.text = "Button Pressed!" 21 } 22}

![イメージ説明]WIDTH:600

投稿2015/04/09 05:12

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Ryo87

2015/04/09 05:29

> buttonPressed(sender: UIButton) > myButtonPressed(sender: AnyObject) この辺りが関係あるのでしょうか。 swiftをあまり触ってないもので、UIButtonで私は実装しましたが。
退会済みユーザー

退会済みユーザー

2015/04/09 06:03

異なる型のあいだでの変換を行う場合、Swiftでは、関数型を除く、すべての型をあらわすことのできる「AnyObject」という特別な型を使用します(ただし、明示的に AnyObjectを継承してクラスを定義することはできません)。 型が合っておらず、ダウンキャストが失敗した場合は、実行時にエラーが発生します。 StoryBoardから、Buttonの Sent Eventsで Touch Downなどを紐づければ、おなじ記述になります。
Ryo87

2015/04/09 06:47

参考にさせてもらいます。
guest

0

ペーペーなので正確な答えを出せているかわかりませんが、参考になれば。

おそらく、同様なコードになるかと思われますが、以下の様に実装してみましたが、エラーは出ていません。
UILabelと、UIButtonはそれぞれ、ストーリーボードから、Ctrlを押しながらくっつけました。

lang

1import UIKit 2 3class ViewController: UIViewController { 4 5 @IBOutlet weak var myLabel: UILabel! 6 7 override func viewDidLoad() { 8 super.viewDidLoad() 9 // Do any additional setup after loading the view, typically from a nib. 10 } 11 12 @IBAction func buttonPressed(sender: UIButton) { 13 myLabel.text = "Button Pressed!" 14 } 15 override func didReceiveMemoryWarning() { 16 super.didReceiveMemoryWarning() 17 // Dispose of any resources that can be recreated. 18 } 19 20 21}

質問主さんの出力されたLogにもう少し表示されていた内容があると思うのですが、

2015-04-09 10:00:00.000 〜

以下をすべて貼っていただいたほうが、他の方も答えやすいかと思われます。

また、タグに

iOS Xcode Swift iPhone

と付けられているだけでなく、本文の方にも、書かれると回答者はわかりやすいかと思います。

iOS:8.2
Xcode:6.2
使用言語:swift
ios Simulator:iphone6+

参考になれば。

投稿2015/04/09 00:48

Ryo87

総合スコア14

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2015/04/09 02:06

ご回答ありがとうございます。丁寧なアドバイスで助かりました。 もう一度やり直してみたのですが、上手く行きませんでした。 Logのすべてと開発環境について追記致しました。ご覧いただけると非常に助かります。よろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問