класс на детской площадке против файла программы - PullRequest
0 голосов
/ 20 января 2020

У меня есть вопрос о чем-то простом, который работает в Playground, но не в Project: (код Playground ниже)

В проекте, где класс находится в отдельном файле swift, исправление кода не будет отображаться мне person.lastName, и если я полностью наберу это, я получу ошибку .... хм, очень странно - может быть ошибка новичка или?

Как мне указать в файле программы и отдельный swift файл для работы?

Спасибо, Роман

import UIKit

class human {
    var firstName = ""
    var lastName = ""
}

let person = human()

person.lastName = "Smith"
person.firstName = "Peter"

print (person.firstName)
print (person.lastName)

1 Ответ

0 голосов
/ 20 января 2020

Вот почему я ненавижу детские площадки. Они не очень быстрые. В реальном Swift весь исполняемый код должен быть внутри функции (например, метод некоторого класса или структуры или перечисления); у вас не может быть строк типа person.lastName = "Smith", просто висящих в пространстве вот так.

Так что в реальном iOS проекте вам нужно написать что-то более похожее на это:

class Human {
    var firstName = ""
    var lastName = ""
}

func test() {

    let person = Human()

    person.lastName = "Smith"
    person.firstName = "Peter"

    print (person.firstName)
    print (person.lastName)

}

И даже тогда ничего не произойдет, пока вы на самом деле не вызовете test(), и вы не сможете этого сделать, кроме как с помощью функции. Вот почему люди обычно тестируют код в viewDidLoad контроллера представления.

class Human {
    var firstName = ""
    var lastName = ""
}
class ViewController : UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        let person = Human()

        person.lastName = "Smith"
        person.firstName = "Peter"

        print (person.firstName)
        print (person.lastName)

    }
}
...