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

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++と共存することが意図されています

Q&A

解決済

2回答

2447閲覧

outlet接続のエラー

mahi

総合スコア12

iOS

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

Xcode

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

Swift

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

0グッド

0クリップ

投稿2019/01/28 15:04

前提・実現したいこと

アプリの起動時に表示される文章をランダムで変更したいと思っています。
調べた所、outlet接続が外れていたり正しく接続されていない時に起こるエラーのようで、指示通りに正しく接続しているつもりなのですが一向に直る気配がないため質問させていただきました。本当に接続が上手く行っていないのか、または別に原因があるのかが知りたいです。持っているボキャブラリーの範囲で英語・日本語とも調べましたが治りません。次のステップを教えてください。

発生している問題・エラーメッセージ

this class is not key value coding-compliant for the key quoteLabel.

該当のソースコード

swift

1import UIKit 2 3class ViewController: UIViewController { 4 5 @IBOutlet weak var quoteLabel: UILabel! 6 7 let quote1 = "アプリを開いたら後はスタートボタンを押して始めるだけ⛄" 8 let quote2 = "ストップボタンでタイマーが止まるよ" 9 10 11 12 override func viewDidLoad() { 13 super.viewDidLoad() 14 // Do any additional setup after loading the view, typically from a nib. 15 let quoteNum = arc4random_uniform(2) 16 if quoteNum == UInt32(0) { 17 quoteLabel.text = quote1 18 } else { 19 quoteLabel.text = quote2 20 } 21 22 } 23}

試したこと

初心者のため、コードの書き方が悪いのかと思い、viewDidLoad()内のコードを消してみましたが、エラー発生。
@IBOutlet weak var quoteLabel: UILabel!があるだけでもエラーが発生するようです。
UILabelの接続自体をインスペクタから解除して、@IBOutlet weak var quoteLabel: UILabel!を削除した所エラーは発生しませんでした。

補足情報(FW/ツールのバージョンなど)

xcode 9.3

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

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

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

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

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

fuzzball

2019/01/29 04:28

>>UILabelの接続自体をインスペクタから解除して、@IBOutlet weak var quoteLabel: UILabel!を削除した所エラーは発生しませんでした。 この状態から、もう一度UILabelのアウトレットを繋ぎ直しても同じタイミングで同じエラーが出るのでしょうか?
mahi

2019/01/29 07:13

同じタイミングでエラーが出ます。。 ちなみにエラーが出るタイミングは、ビルドしてシュミレーターが読込している(白い画面)時です。
fuzzball

2019/01/29 07:22

UILabelだけではなく、ViewController全体の接続を確認して下さい。
hameji001

2019/01/29 23:40

問題のviewcontrollerのconnections inspectorのスクリーンショットを 質問につけてもらった方が早い気がします。
guest

回答2

0

ベストアンサー

考えていらっしゃるとおり、Outlet接続がうまくいっていないのかと思います(コードが悪いわけではありません)。

こちらの記事を参考に、
https://qiita.com/Atsushi_/items/f7930dd00a2c2ea464cd

接続したいLabelを選択した上で、Connections inspecter(Xcodeの右部の一番右にあるボタン)をクリックし、不要な接続がされていないか確認してください。
もしあればそれを全て削除し、ViewControllerにある古いOutlet接続も削除した上で、新しく接続し直してみてください。

それでもエラーが出るようであれば、プロジェクトを作り直してしまったほうが早いと思います。

投稿2019/02/02 13:01

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

mahi

2019/02/11 08:14

プロジェクトを作り直してみたらエラーが発生しなくなりました。 ありがとうございました。
guest

0

自分もswift初心者なので解決に至るかわかりませんが、quoteLabelと接続する予定のInterface Builder上のUILabelを選択して、一度Outletの接続を全て消してから再度接続してみるといいかと思われます。

あと、クリーンビルドを行なってから再度ビルドをしてみてはいかがでしょうか?

投稿2019/01/28 15:24

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

mahi

2019/01/29 04:22

全削除とクリーンビルド試してみましたが、ダメでした..
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問