Аргумент передается в call, который не принимает аргументов в Swift 4 - PullRequest
1 голос
/ 21 октября 2019

Я быстро учусь. И я использую версию Swift 4.

Я пытаюсь сделать что-то, переопределяющее метод.

class cricket {
    func print() {
        print("Super class called")
    }
}

class tennis : cricket {
    override func print() {
        print("Sub class called")

    }
}

let circInstance = cricket()
circInstance.print()

let tennisInstance = tennis()
tennisInstance.print()

Но, если бы я запустил вышеуказанную программу на моей площадке Xcode, я получаю следующую ошибкупри печати заявления.

error: MyPlayground.playground:508:15: error: argument passed to call that takes no arguments
        print("Super class called")
             ~^~~~~~~~~~~~~~~~~~~~~

error: MyPlayground.playground:514:15: error: argument passed to call that takes no arguments
        print("Sub class called")
             ~^~~~~~~~~~~~~~~~~~~

Есть предложения?

1 Ответ

2 голосов
/ 21 октября 2019

У вас конфликт имен с локальным методом. Вы должны использовать квалифицированное имя:

Swift.print("Super class called")

В противном случае вы пытаетесь вызвать self.print() без аргументов.

Swift. здесь указано имя SwiftМодуль стандартной библиотеки , содержащий функцию print .

...