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

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

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

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

Q&A

解決済

1回答

2463閲覧

[swift]@IBOutletや @IBActionの位置について

HidekiNinomiya

総合スコア13

Swift

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

0グッド

0クリップ

投稿2017/05/20 23:29

質問

iPhoneアプリをつくる勉強をしていまして、下記タイマーを作っている最中です。基本的な質問で申し訳ないのですが、下記にある@IBOutletや @IBActionの位置はどのくらい大事なんですか?

override func viewDidLoad()
の前に
@IBAction func
がなくても良いんですか?

コード

lang

1import UIKit 2 3class ViewController: UIViewController { 4 5 @IBOutlet weak var timerLabel: UILabel! 6 7 var timer: Timer! 8 var timer_sec: Float = 0 9 10 override func viewDidLoad() { 11 super.viewDidLoad() 12 // Do any additional setup after loading the view, typically from a nib. 13 } 14 15 override func didReceiveMemoryWarning() { 16 super.didReceiveMemoryWarning() 17 // Dispose of any resources that can be recreated. 18 } 19 20 func updateTimer(timer: Timer) { 21 self.timer_sec += 0.1 22 self.timerLabel.text = String(format: "%.1f", timer_sec) 23 } 24 25 @IBAction func startTimer(_ sender: Any) { 26 // 再生ボタンを押すとタイマー作成、始動 27 self.timer = Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(updateTimer), userInfo: nil, repeats: true) } 28 29 @IBAction func pauseTimer(_ sender: Any) { 30 // タイマーを破棄 31 self.timer.invalidate() 32 } 33 34 @IBAction func resetTimer(_ sender: Any) { 35 // リセットボタンを押すと、タイマーの時間を0に 36 self.timer_sec = 0 37 self.timerLabel.text = String(format: "%.1f", self.timer_sec) 38 } 39} 40

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

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

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

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

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

guest

回答1

0

ベストアンサー

@IBOutlet@IBActionの位置はHidekiNinomiyaさんが書いている位置で問題ないと思います。

@IBOutletは変数なのでvarletと同じ位置に書き、@IBActionはメソッドなので他のメソッドと同じところに書くのが良いと思います。

バラバラな位置に書いていると他の人がコードを読む時に読みづらいし、探しにくいと思います。

// MARK: -を使って目印を付けるのも見やすくするのに良いですね。

swift

1 2// MARK: - Private Method 3 4func updateTimer(timer: Timer) { 5 self.timer_sec += 0.1 6 self.timerLabel.text = String(format: "%.1f", timer_sec) 7} 8 9@IBAction func startTimer(_ sender: Any) { 10 // 再生ボタンを押すとタイマー作成、始動 11 self.timer = Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(updateTimer), userInfo: nil, repeats: true) } 12 13@IBAction func pauseTimer(_ sender: Any) { 14 // タイマーを破棄 15 self.timer.invalidate() 16} 17 18@IBAction func resetTimer(_ sender: Any) { 19 // リセットボタンを押すと、タイマーの時間を0に 20 self.timer_sec = 0 21 self.timerLabel.text = String(format: "%.1f", self.timer_sec) 22}

投稿2017/05/20 23:46

_Kentarou

総合スコア8490

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

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

HidekiNinomiya

2017/05/21 13:41

ありがとうございます!助かります!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問