1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Last updated at Posted at 2019-12-09

#マジの初心者は基礎自体分からん!
プログラミング開発において、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ってなんだ

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

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

鯛焼き.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 = "こんにちは"

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

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

次はメゾットだ泣

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?