Help us understand the problem. What is going on with this article?

初学者が、プロパティを考えたら深くなった。

マジの初心者は基礎自体分からん!

プログラミング開発において、8割が調べる時間というデータがあるそう。
しかも、覚えるというよりかは、調べて書くみたいな事がほとんどだそうな。

こういうのも0からベースの初学者にしてみたら知らない話である。

だからサンプルコードを書いていて分からなくなるポイントは山ほどある。

今回は学習中に出てきた

import UIKit

//スーパークラスUIViewControllerを継承したclass ViewController
class ViewController: UIViewController {

//   プロパティの宣言
   @IBOutlet weak var label: UILabel!

//   メゾットの宣言
    @IBAction func sayHello(_ sender: Any) {

    label.text = "こんにちは"
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }


}

の、この部分

    //   プロパティの宣言
    @IBOutlet weak var label: UILabel!

    //   メゾットの宣言
    @IBAction func sayHello(_ sender: Any) {
    label.text = "こんにちは"

の「メゾット」と「プロパティ」ってなんだっけ? について改めて書いていく!

確か、classとかの学習のついでに登場した記憶があるなぁ。

Outlet Actionとは

Outlet

ここでいうOutletは、ストーリーボード上のUI部品をプロパティとして接続するという意味を持つ。

という事だそう。

Action

ここでいうActionは、ストーリーボード上のUI部品をメゾットとして接続するという意味を持つ。

ストーリーボードのUI部品はわかる。
LabelとかButtonとかね!

じゃあそのプロパティとメゾットってなんだよぉ!

その為にはUI部品と、Classについて理解する必要がありそうだ。

Classってなんだ

https://www.sejuku.net/blog/34191

上記のリンクはスクールの解説なので参考になるかもしれない。

よく言われるのが「鯛焼きの型」だ。

鯛焼き.png

swiftでは、UI部品のテンプレートの型である。

ボタンとか、スライドするバーとか(UISlider)とかね。

よく鯛焼きの型と例えられているよね。

僕的には鯛焼きの型のイメージが良く分からないんだけどね笑。
つまりUIのテンプレートだよね。

スライダー.png

上のSliderがクラス(テンプレート)だとして

スライダー2.png

こういう感じで、数字が入るとか、文字が入るとか、先が太くなるとか。
カスタマイズする。

これがインスタンス

Classからインスタンスを作る

Sliderのクラスから
スライダー2.png
これを作ろうと思う。

で、クラスを使ってインスタンスを作ろうと思った時の公式は

var<変数名> = <クラス名>()

となる。Uisliderclassを用いて、変数sliderインスタンスを作るとなると

var slider = UIslider

こうなる。

その後に

 var slider = UIslider

 slider.value = 1.0

というように、インスタンスに追加記入をしていってカスらマイズをしていく。
これをプロパティという!!

はぁはぁ。やっとここまできたぞ泣。

プロパティとはつまり…。

プロパティはつまり、インスタンスのカスタマイズできる部分である。

つまり、クラスというテンプレートから、作りたいUI部品をインスタンスといい、そのインスタンスをカスタマイズするのがプロパティ

な、なげえ!

ちなみにプロパティの表記方法は

<インスタンスの変数名>.<プロパティの名前> = <値>

となる。

まとめ

import UIKit

//↑playgroundの最初の表記
var str = "Hello, playground"

var slider = UISlider()
class、UISliderの変数sliderインスタンスを作成して

slider.value = 0.5
インスタンスsliderのvalueプロパティの値は1.0だよ

となる。

値の話は実際にPlaygroundで試してほしい。
0.5になるとどうなるとかね。

ともかく、インスタンスは()がついたり.がついたりと紛らわしいから、とりあえず今日もコードを書こう!

けど

   //   プロパティの宣言
   @IBOutlet weak var label: UILabel!

   //   メゾットの宣言
    @IBAction func sayHello(_ sender: Any) {
    label.text = "こんにちは"

ってここでいうプロパティと違わね?
プロパティの宣言をしているけど表記が違うのはなんでだ!?泣

ともかく、初心者の僕は基礎だけ抑えておこう。

次はメゾットだ泣

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした