Игровая площадка Swift — элемент экземпляра нельзя использовать в пользовательском классе типа

Я пытаюсь реализовать следующий код на игровой площадке:

class File {
    class func open(path: String, encoding: NSStringEncoding = NSUTF8StringEncoding) -> String? {
        if NSFileManager().fileExistsAtPath(path) {
            do {
                return try String(contentsOfFile: path, encoding: encoding)
            } catch let error as NSError {
                print(error.code)
                return nil
            }
        }
        return  nil
}

Но когда я пытаюсь получить доступ к классу:

let read = File()
let content = read.open("ba")

Я получаю эту ошибку: «Экземпляр «Читать» не может использоваться для пользовательского типа типа «Файл» "

Кто-нибудь из вас знает, почему эта ошибка или как я могу ее исправить?

Я был бы очень признателен за вашу помощь.


person user2924482    schedule 10.05.2016    source источник
comment
stackoverflow.com/a/26540934/2303865 ответ находится прямо под исходным кодом   -  person Leo Dabus    schedule 11.05.2016
comment
Кстати, это больше не будет работать с детской площадкой. вам нужно проверить это с реальным проектом   -  person Leo Dabus    schedule 11.05.2016


Ответы (1)


Вы определили статический метод, поэтому он доступен, например

let content = File.open("ba")
person SirH    schedule 10.05.2016
comment
В чем разница между статическим методом и нестатическим методом? - person user2924482; 11.05.2016
comment
Методы и переменные, которые не объявлены как статические, называются методами экземпляра и переменными экземпляра. Чтобы обратиться к методам и переменным экземпляра, вы должны сначала создать экземпляр класса, что означает, что вы должны сначала создать объект этого класса. Для статики вам не нужно создавать экземпляр класса, вы можете получить доступ к методам и переменным с именем класса, используя знак точки который в (.) - person SirH; 11.05.2016
comment
Почему следует использовать над другим? - person user2924482; 11.05.2016