まいまいワークス

主にiPhoneアプリの開発で考えた事、調べた事、感じた事などを記していきます。

【swift】インスタンス変数、クラス変数、ローカル変数

//すべてのクラスから参照可能
let global_let = "global"  //グローバル変数

class myClass: NSObject {

    public let aaa = "abc"     //インスタンス変数(クラス内の共通変数)、インスタンス化すると他クラスから参照可能
    let bbb = "def"                //インスタンス変数(クラス内の共通変数)、インスタンス化すると他クラスから参照可能
    private let ccc = "ghi"        //インスタンス変数(クラス内の共通変数)、他クラスから参照不可
    static let ddd = "jkl"     //クラス変数、他クラスからmyClass.dddで参照可能
    
    func method1(){
        
        let xyz = "xyz"        //ローカル変数
        print("xyz=",xyz)    //メソッド内でのみ有効
    }

}
//上記変数を他のクラスから参考

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        print("global=",global_let)


        let myclass = myClass()       //インスタンス化
        
        print("aaa=",myclass.aaa)
        print("bbb=",myclass.bbb)
//     print("ccc=",myclass.ccc)     //プライベート変数なのでエラーになる
        print("ddd=",myClass.ddd)
        
        
        myclass.method1()       //myClassのmethod1を実行
        
    }

}

//実行結果
global= global
aaa= abc
bbb= def
ddd= jkl
xyz= xyz