🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Swift

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

iPhone

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

Q&A

1回答

1108閲覧

view.addSubviewの「view」が宣言無しで使える理由

aae_11

総合スコア178

Swift

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

iPhone

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

1グッド

0クリップ

投稿2019/10/26 23:48

以下のコードにおきまして、「view.addSubview」についてお聞きしたいことがあります。

import UIKit import WebKit class ViewController: UIViewController,WKNavigationDelegate { var webView = WKWebView() @IBOutlet weak var Indicator: UIActivityIndicatorView! @IBOutlet weak var toolBar: UIToolbar! override func viewDidLoad() { super.viewDidLoad() webView.frame = CGRect(x: 0, y: toolBar.frame.size.height, width: view.frame.size.width, height: view.frame.size.height - toolBar.frame.size.height*2) view.addSubview(webView) //何をロードするのか webView.navigationDelegate = self let url = URL(string: "https://www.yahoo.co.jp/") let request = URLRequest(url: url!) webView.load(request) } //ロードが開始された時 func webView(_ webView: WKWebView, didCommit navigation:WKNavigation!){ print("読み込み開始") Indicator.startAnimating() } func webView(_webView: WKWebView, didFinish navigation: WKNavigation!){ print("ロード完了") Indicator.stopAnimating() } @IBAction func go(_ sender: Any) { webView.goForward() } @IBAction func back(_ sender: Any) { webView.goBack() } }

こちらのコードはwebページを表示する為のコードになりますが、webView.frameにて設定したものをview.addSubview(webView)にてセットしているものと認識しているのですが、上記コードに置いて、「view」はどの部分にも宣言はしておりません。
なぜ、viewを使用することができるのでしょうか?

退会済みユーザー👍を押しています

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

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

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

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

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

fuzzball

2019/10/28 01:31

command + control + クリックで定義先に飛べます。また、option + クリックでドキュメントを見れます。
aae_11

2019/10/28 04:29

ありがとうございます!試してみたいと思います
guest

回答1

0

アップルの公式解説を読んでみるといいと思います。https://developer.apple.com/documentation/uikit/uiviewcontroller
「Managing the View」のとこに書いてありますよ。

つまりUIViewControllerというクラスには
viewという変数が最初から設定されているので、
宣言なしに使えます。

その他にはそこに書いてある、
titleやpreferredContentSize、
isViewLoaded、viewIfLoadedも
宣言なしに当然のように使えます。

ちなみに、addSubViewはUIViewに対して、使えるMethodだから、宣言してないのに使えます。
https://developer.apple.com/documentation/uikit/uiview/1622616-addsubview

投稿2019/10/27 01:49

編集2019/10/27 01:57
hameji

総合スコア1380

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

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

aae_11

2019/10/27 01:59

ご回答ありがとうございます。 公式解説は難しく敬遠してしまっている部分があるんですよね... >最初から設定されているので、宣言なしに使えます。 こちらの部分なのですが、「UIViewController」クラスにすでに定義されているプロパティが「view」である為、クラスのプロパティを使用しているとの解釈で合っていますでしょうか...?
hameji

2019/10/27 02:03

リンクを見てください。 英語を読まないなら、プログラミングを続けていくのは難しいでしょう。
aae_11

2019/10/27 02:07

実を申しまして、英語が苦手でして...日本語化されていないドキュメントが読めないという状況にあるんですよね...
miyabi_takatsuk

2019/10/27 03:06 編集

横槍失礼します。 aae_11さん > Swiftの場合特にですが、割と新しい言語ですし、日本語ドキュメントは極端に少ない言語ですので、 英語は多少読めるようになっておいた方がいいかもしれません。 あらゆる日本語ネット記事も、間違った情報や、独断と偏見がどうしても入ってしまうので、 公式ドキュメントに勝るものはありませんので。(Swiftは公式は日本語無い。非公式の日本語訳はどこかにあるかも) ただし、プログラミングをやっていくと、だいたい同じ単語ややっていることが同じだったりするので、 慣れてくると、見れば英語が苦手でもだいたい何をやっているのかがわかったりします あきらめず、ドキュメントと実コードと翻訳をうまく使って、見ていかれるといいかと思います。 それと、Xcodeでやっているのであれば、組み込みクラスの定義部分に飛び、中身を見てみるのも、いい勉強になるかもしれません。
aae_11

2019/10/27 04:27

>miyabi_takatsukiさん 実の所、英語だけでなく、swiftの勉強を始めたばかりな為、公式の説明でも書いてあることが分からなかったりします。その為、少し、理解するには難易度が高いかなと思っているというのも、公式の説明を現在、避けている理由であったりしてます
miyabi_takatsuk

2019/10/27 04:47

なるほど・・・。 となると、まずは、クラスベースとオブジェクト指向の概念を勉強されるといいかもですね。 どの言語においても大事な概念です。特にクラスベースは大半の言語に使用されている仕様ですので。 でも、それでも、その言語を学ぶ上で、公式ドキュメントは避けては通れません。 なので、やっていきたいと思うなら、歯を食いしばって通るべきかと思いますよ。 しかし、どうしても公式が、ハードル高いと感じるなら、 本を買って学ぶ方がいいかと思います。 本ならば、よほどのことが無い限り間違った情報は記載されませんので、ネットの非公式記事で、部分ずつで学ぶより、よほど勉強になります。
aae_11

2019/10/27 04:57

ご助言ありがとうございます。 そうですね。どの道公式ドキュメントでの学習は避けて通れませんしね... 実は、書籍での学習を検討しているのですが、現在の自分の環境だと、swift5及びxcode11でして、swift4及びxcode10版で出ている書籍が後一ヶ月程で恐らく改訂する為、それを待とうかなと思っているんですよね... せっかくなので、最新版に合わせて学習した方が良いかと思いまして...
miyabi_takatsuk

2019/10/27 05:03

そ、そうだった・・・。 最近アップデートしましたもんね。 最新の本を買うことを検討されているなら、それが一番かと思います。 Swift3→Swift4になった時、私自身、本を買うタイミングに悩んだのを思い出しました。 そうですね、ならば、今は我慢して、公式ドキュメント頑張って見つつ、ネットでも情報を取捨選択してみていくしかないですね。 どうか、頑張って。 私も、回答、できる限りさせていただきますので。
aae_11

2019/10/27 06:42

ありがとうございます。頑張ります!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問