Ios swift第一个简单项目-无法调用对象方法

Ios swift第一个简单项目-无法调用对象方法,ios,swift,Ios,Swift,我读了一些关于swift的教程,并制作了一个简单的计数器应用程序,但我想修改它以保持控制器干净,并将逻辑移到外部类: 在ViewController.swift i中有 class ViewController: UIViewController { var counter: Counter? override func viewDidLoad() { super.viewDidLoad() counter = Counter(labe

我读了一些关于swift的教程,并制作了一个简单的计数器应用程序,但我想修改它以保持控制器干净,并将逻辑移到外部类:

ViewController.swift i中

 class ViewController: UIViewController {
      var counter: Counter?

      override func viewDidLoad() {
        super.viewDidLoad()
        counter = Counter(label: labelCounter)
        counter.renderInit()
      }
    }
我有柜台:

 class Counter: NSObject {
      var label: UILabel?

      init(label: UILabel) {
        self.label = label
      }

      func renderInit() {
        ...
      }
    }
控制器在线
counter.renderInit()
中出现错误消息:


“Counter?”没有名为“renderInit”的成员

请将
Counter.renderInit()更改为以下内容之一:

counter?.renderInit()
counter!.renderInit()
计数器?
是可选类型。你需要打开它。如果
计数器
为零,则执行
将忽略该方法,并且
将强制它展开,如果它不存在,则抛出错误


查看有关选项的更多信息。

好的,我向前移动了一步,发现调用方法对象有另一个问题

class Counter: NSObject {
  var label: UILabel?

  init(label: UILabel) {
    self.label = label
  }

  func renderInit() {
    label?.text = String(counter)
  }
}
我得到“无法分配到此表达式的结果。”(对于要将数字转换为字符串的行,为文本添加标签


我阅读了文档和一些教程,但在学习新事物的过程中,以类似的方式看待示例是很好的。不幸的是,Swift是一门年轻的语言,示例并不多。(我是Ruby语言程序员).

可能是真棒的副本,谢谢。我以前看过文档,我知道这是可选类型,但我找不到类似的示例。