HOME > 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の方が手を抜きやすい。楽です。
2021-05-14 14:21:41 | WatchOSのwatchconnectivityのFiletransferの落とし穴。と、避け方。
AppleWatch 実機だと成功するんだけど、シュミレーターだと失敗するという、、、
昔作成してた時は成功してたのになーと思って調べると、どうやら昔は成功してたみたい。watchOS6以降は... |
2021-05-06 14:04:37 | LINEのアニメーションスタンプ制作の落とし穴、、、失敗談
ゴールデンウィークにLINEスタンプを作成してみました。
作り切って申請も通したんですが、意図したアニメーションと違う、、、、
LINEクリエーターの画面だと、アニメーションのプレビュー... |
2021-05-01 18:05:35 | 久しぶりのAdmobをobjective-cに実装。コンパイルエラーだらけ。バーミッション不具合でエミュレータにインスコできない。
忘れないようにメモ
エミュレータにアプリをインストールする際にパーミッション系のエラーがでた時、また、iphone実機にインストールする際にも権限系のエラーが出る場合。
ターゲット→ex... |
Tweet | |||
|