#マジの初心者は基礎自体分からん!
プログラミング開発において、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ってなんだ
上記のリンクはスクールの解説なので参考になるかもしれない。
よく言われるのが「鯛焼きの型」だ。
swiftでは、UI部品のテンプレートの型である。
ボタンとか、スライドするバーとか(UISlider)とかね。
よく鯛焼きの型と例えられているよね。
僕的には鯛焼きの型のイメージが良く分からないんだけどね笑。
つまりUIのテンプレートだよね。
上のSliderがクラス(テンプレート)だとして
こういう感じで、数字が入るとか、文字が入るとか、先が太くなるとか。
カスタマイズする。
これがインスタンス。
##Classからインスタンスを作る
で、クラスを使ってインスタンスを作ろうと思った時の公式は
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 = "こんにちは"
ってここでいうプロパティと違わね?
プロパティの宣言をしているけど表記が違うのはなんでだ!?泣
ともかく、初心者の僕は基礎だけ抑えておこう。
次はメゾットだ泣