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

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

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

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

Swift

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

iPhone

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

Q&A

1回答

301閲覧

UIImageViewなどの型について

aae_11

総合スコア178

iOS

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

Swift

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

iPhone

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

0グッド

1クリップ

投稿2019/11/18 04:12

swiftにおける変数について、お聞きしたいことがございます。
例えば以下のlogoimageViewというのはUIImageView型の変数であるかと思うのですが、ここの点がいまいち理解できません。なんらかのクラスからインスタンス化した場合には、そのインスタンス変数はクラスのプロパティやメソッドを使用できるかと思うのですが、インスタンス化をしていないにも関わらず、何故、logoimageView変数はUIImageViewのプロパティなどを使用できるのかが、少し、引っ掛かります...
自分的には、正直な所logoimageViewはインスタンス変数でないのかとすら思ってしまいます...
ここの部分に関して、少し混乱してしまいました為、どなたかご助言頂けましたら幸いです。
よろしくお願いします。

@IBOutlet weak var logoimageView: UIImageView! @IBOutlet weak var userNameTextField: UITextField!

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

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

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

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

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

miyabi_takatsuk

2019/11/18 04:43

@IBOutlet に関しては、調べられましたでしょうか? これに関して調べると少しヒントになるかと思いますよ。 通常のメンバ宣言とはだいぶ違うので。
aae_11

2019/11/18 04:50

ご指摘ありがとうございます。 @IBOutletに関してもう少し、調べて見たいと思います。
aae_11

2019/11/18 05:19 編集

IBOutletに関して、「IBOutlet インスタンス」などと検索し調べて見たのですが、いまいち分からないです... 他質問で、IBOutlet変数はインスタンス化されている?とのご回答を頂いた為、どのタイミングでインスタンス化され、どのクラスのプロパティを持っているのかが調べているのですが、いまいち分からず、少々苦戦気味です...
aae_11

2019/11/18 05:34

他質問でいただいたご回答で、なんとなく分かってきました。ですが、swiftって難しいですね... PHPのように一から体系的に学べるような本があれば良いのですが、バージョンアップで変更される点も多いようですし、なかなか難しい所はありますね...
guest

回答1

0

すでに質問修正欄でのやりとりで解決してそうな感じですが、

インスタンス化をしていないにも関わらず、何故、logoimageView変数はUIImageViewのプロパティなどを使用できるのかが、少し、引っ掛かります..

インスタンス変数で合っています。

Storyboardを使っている場合は、Storyboardの仕組みの中でViewControllerやそれに乗っている各ビューのインスタンスが生成され、
コントロールなどのインスタンスは紐付けてあるメンバー変数(@IBOutletがついた変数)に勝手に代入してくれます。

逆に言えば紐付けを忘れていたりすると、この変数はnilになり何もできません。
(@IBOutlet変数だけ定義して、紐付けてないとnilになり、実行時に不正終了するというのはあるあるですのでお気をつけください)。

(アウトレット変数に代入されるタイミングは調べた事がありませんが、たぶんloadViewかそこらだと思います。)

投稿2019/11/18 06:10

編集2019/11/18 06:12
takabosoft

総合スコア8356

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

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

aae_11

2019/11/18 06:22 編集

ご回答ありがとうございます。 ご回答頂きましたおかげで、徐々に分かって参りました。 ですが・・・すみません。swiftの勉強を初めたばかりで、理解できない箇所がございます... >Storyboardの仕組みの中でViewControllerやそれに乗っている各ビューのインスタンスが生成され、 コントロールなどのインスタンス こちらの部分なのですが、「ViewControllerやそれに乗っている各ビュー」、「コントロールなどのインスタンス」とは例えばどのようなものを指すか教えて頂けませんでしょうか...?
takabosoft

2019/11/18 07:08

例えばSingle Viewのテンプレートから新規プロジェクト作って、Sotryboardに行ってボタン(UIButton)をViewControllerに一個置いたとします。 で、これを実行すると、アプリの仕組みとして自動的にフレームワークが(フレームワークってなんだ?)、 Main.storyboardをロードし、初期画面として設定されている「ViewController」のインスタンスを生成し、storyboardで配置したボタン(UIButton)のインスタンスを指定された通りの位置や内容で生成し、ViewControllerのviewにaddSubviewしてくれます。 > 「ViewControllerやそれに乗っている各ビュー」、「コントロールなどのインスタンス」とは例えばどのようなものを指すか教えて頂けませんでしょうか...? ちょっと誤解を招くような書き方をしてしまったので、補足しておきますが、 「コントロール」はボタンなどユーザーが操作できるUIパーツのことを指して言っていますが、 例えばUIButtonもコントローラーでして、こいつの親クラスがUIControlで、UIControlの親クラスがUIViewなので、コントロールも一種の「ビュー」と言えます。 なので、 「ViewControllerやそれに乗っている各ビュー」は 「ViewControllerやそれに乗っているボタンなどのコントロール」と捉えてください。
aae_11

2019/11/18 07:50

ご丁寧に教えてくださりありがとうございます。 自分自身の理解力が足らず全ては理解仕切れないのですが、大方理解することができたように思います。 勉強を続けていく過程で、理解が進んだ際は、またご回答を見直させて頂きます。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問