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

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

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

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

Q&A

解決済

1回答

600閲覧

storyboardのUI部品をつなげるとクラッシュしてしまう。

Tsudanuma

総合スコア5

Swift

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

0グッド

0クリップ

投稿2020/09/06 11:22

swift

1import UIKit 2import Firebase 3import Lottie 4 5class LoginViewController: UIViewController { 6 7 @IBOutlet weak var textField1: UITextField! 8 @IBOutlet weak var textField2: UITextField! 9 @IBOutlet weak var errorLabel1: UILabel! 10 11 12 let animationView = AnimationView() 13 14 override func viewDidLoad() { 15 super.viewDidLoad() 16 17 } 18 19 20 @IBAction func loginUser(_ sender: Any) { 21 22 startAnimation() 23 Auth.auth().signIn(withEmail: textField1.text!, password: textField2.text!) { (user, error) in 24 25 if error != nil{ 26 print(error as Any) 27 self.errorLabel1.text = "error" 28 self.stopAnimation() 29 }else{ 30 print("成功") 31 self.stopAnimation() 32 self.performSegue(withIdentifier: "main", sender: nil) 33 } 34 35 } 36 37 } 38 39 @IBAction func registerNewUser(_ sender: Any) { 40 41 startAnimation() 42 Auth.auth().createUser(withEmail: textField1.text!, password: textField2.text!) { (user, error) in 43 44 if error != nil{ 45 print(error as Any) 46 self.errorLabel1.text = "error" 47 self.stopAnimation() 48 }else{ 49 print("成功") 50 self.stopAnimation() 51 self.performSegue(withIdentifier: "main", sender: nil) 52 } 53 54 } 55 56 57 } 58 59 func startAnimation(){ 60 61 let animation = Animation.named("loading") 62 animationView.frame = CGRect (x:0,y:0,width:view.frame.size.width,height:view.frame.size.height/1.5) 63 64 animationView.animation = animation 65 animationView.contentMode = .scaleAspectFit 66 animationView.loopMode = .loop 67 animationView.play() 68 69 view.addSubview(animationView) 70 } 71 72 func stopAnimation(){ 73 74 animationView.removeFromSuperview() 75 76 } 77} 78

上記のMain.storyboardと連携させたViewControllerですが、毎回AppDelegateクラスの先頭で止まってしまいます。エラーコードは"Thread 1: Exception: "[<UIViewController 0x7fd382e0d510> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key errorLabel1."と書かれていまして、ネットの情報からstoryboardとの接続の見直しや再接続を試しましたがエラーが消えることはありませんでした。Xcode自体の再起動も試しましたが効果はありませんでした。

自力で調べた感触からするとこれはバグのような気がしているのですが、直す方法はありますでしょうか。

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

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

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

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

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

guest

回答1

0

ベストアンサー

この手のエラーが出る時にはほぼ間違いなく UI部品の接続ミスか、カスタムクラスの設定ミスです。

[<UIViewController 0x7fd382e0d510> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key errorLabel1

とあるので、errorLabel1 について接続漏れか、あるいは削除漏れがあるのではないでしょうか。

下記の図を参考に、1. を参考に全ての ViewController などを選択し、2.の右矢印の部分(Show the connections inspector)をクリックし、3.の部分に警告が出ていないか否か確認してみていただけますでしょうか。

イメージ説明

投稿2020/09/06 11:33

TsukubaDepot

総合スコア5086

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

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

Tsudanuma

2020/09/06 11:39

回答ありがとうございます。もう一度全て確認してみましたが、接続は全て一対一で正常に繋がれており、コードのIBOutletの行からも接続が確認できます。他に考えられる原因はありますでしょうか
TsukubaDepot

2020/09/06 11:41

上の図の3に相当する部分にも警告はないということでしょうか。
Tsudanuma

2020/09/06 11:47

3の部分に警告はありません。プロジェクトを作り直した方が良いでしょうか。
TsukubaDepot

2020/09/06 11:50

同じような過去の質問を見ていると、時々同じような症状に悩まされる方を見かけます。 おそらく、どこかに接続漏れがあると思うのですが、発見できなくて時間を浪費するより、作り直した方が早いようであれば、そのようにした方がいいかもしれません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問