Swift転職なら=>【LevTech】
↑クリックして拡大
↑クリックして拡大
↑クリックして拡大
↑クリックして拡大

頭痛が減ったので共有です!

rebuild.fmを応援しています!

HOME > Staticな変数や関数

Staticな変数や関数

静的なスタティックな変数や関数はSwiftではどうやって宣言するのか説明します。PHPで一度宣言させたらソースのどこからでもStaticClass::memberFunctionみたいに 実行できるような形をSwiftでどう実際に行うかを調査します。

静的な変数

以下私のお粗末なソースの一部で恐縮ですが、、、クラス名の前にstruct, 変数の前にstaticをつけることでプロジェクト側から簡単に呼び出すことができます。


//GlobalDataという静的な変数セットをもつ静的クラス
import Foundation
import UIKit
import SpriteKit
import AVFoundation

struct GlobalData {
    //var
    static var mainViewController:ViewController = ViewController();
    static var game_data:String = "";
    static var event_layer:UIView = UIView();
    static var main_layer:UIView = UIView();
    static var containerDirectionToLeft:Bool = true;
    static var containerDirections:Array = Array();
    static var screenshot:UIImage = UIImage();
    static var audioPlayerGameOver:AVAudioPlayer = AVAudioPlayer();
    //let
    static let C_APP_NAME = "Swift-salaryman";
}

プロジェクトからは以下のように簡単に呼び出すことができます。Swiftはヘッダファイルが必要ありませんので、上記のGlobalDataの静的ファイルが プロジェクトに追加されてさえいれば、以下はコンパイルエラーなく処理してくれます。


    override func viewDidLoad() {
        super.viewDidLoad()
        GlobalData.mainViewController = self;
    }

静的な関数

変数と同じでstructと宣言したクラスにstaticで関数を追加することで対応できます。


struct SwiftSalarymanUtil {
    static var age = 33;
    static func say(){
        println("I am a salaryman");
    }
}

プロジェクトからは上記同様に以下のように呼び出すことができます。


    override func viewDidLoad() {
        super.viewDidLoad()
        SwiftSalarymanUtil.say()
    }

まとめ

PHPなんかはrequireで追加を名言する必要があっただけにSwiftの方が手を抜きやすい。楽です。

↓こんな記事もありますよ!

関数引数の参照渡し Inout

Swiftで参照だけを渡す(呼び出し元の変数の値を変更する)にはどうしたらよいのかな〜と調査していると、関数引数に参照渡しする方法でindexinoutという言葉があることを知りました。紹介いたします

NSThreadでスレッド処理を行う

タイマー処理と同様に利用できるスレッドの処理です。NSTimerではヒゲがのびたサンプルでしたので眉毛の濃くなるサンプルにしてみます。ただ、どうやらThread処理は 推奨されておらず、dispatch_queueを使用するべきのようです。

アプリから電話をかける

Objective-Cではサンプルがありましたが日本語では無かったので共有です!
このエントリーをはてなブックマークに追加
右側のFacebookのLikeをクリック頂けると記事更新の際に通知されますので宜しければご利用下さい!