类的静态成员变量,为什么这样使用报错

ch_majia 2020-01-14 11:19:12
import Foundation

print("Hello, World!")

public class wechat: NSObject{
static var staticSelf:wechat?
var a:Int = 1;

override init() {
super.init()
wechat.staticSelf = self
}
public func loginSucc( ) -> Void {
//error
print(wechat.staticSelf.a);

//ok
if let controller = wechat.staticSelf {
print(controller.a);
}
return
}
}


为什么error那部分编译错误,下面的ok
...全文
2236 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
ch_majia 2020-01-14
  • 打赏
  • 举报
回复
//
//  main.swift
//  testCMD
//
//  Created by lxlx-cx on 2020/1/14.
//  Copyright © 2020 lxlx-cx. All rights reserved.
//

import Foundation

print("Hello, World!")

public class wechat: NSObject{
    static var staticSelf:wechat{
      set (selfInstance) {
          wechat.staticSelf = selfInstance
      }
      get {
          return wechat.staticSelf
      }
    }
    var a:Int = 1;

    override init() {
        super.init()
        wechat.staticSelf = self
    }
    public func loginSucc( ) -> Void {
        //error
        print(wechat.staticSelf.a);
        
        //ok
        /*
        if let controller = wechat.staticSelf {
            print(controller.a);
        }
        */
        return
    }
}

这样修改后,去掉可选类型也能编译了。

1,424

社区成员

发帖
与我相关
我的任务
社区描述
Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C共同运行于MAC OS和iOS平台,用于搭建基于苹果平台的应用程序。
swift 技术论坛(原bbs)
社区管理员
  • Swift
  • 网罗开发
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧