Swift Playground - 实例成员不能用于类型自定义类

Posted

技术标签:

【中文标题】Swift Playground - 实例成员不能用于类型自定义类【英文标题】:Swift playground - Instance member cannot be used on type custom class 【发布时间】:2016-05-10 21:49:37 【问题描述】:

我正在尝试在 Playground 中实现以下代码:

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")

我收到此错误:“实例成员“读取”不能用于类型自定义类型“文件””

你们中的任何人都知道为什么会出现此错误或我该如何解决?

非常感谢您的帮助。

【问题讨论】:

***.com/a/26540934/2303865 答案就在原代码的正下方 顺便说一句,这不再适用于游乐场。你需要用一个真实的项目来测试它 【参考方案1】:

您已经定义了一个静态方法,因此可以像这样访问它

let content = File.open("ba")

【讨论】:

静态方法和非静态方法有什么区别? 未声明为静态的方法和变量称为实例方法和实例变量。要引用实例方法和变量,您必须先实例化该类,这意味着您应该首先创建该类的对象。对于静态您不需要实例化类,您可以使用句号访问具有类名的方法和变量这是在 (.) 为什么要使用其他的?

以上是关于Swift Playground - 实例成员不能用于类型自定义类的主要内容,如果未能解决你的问题,请参考以下文章

Swift:实例成员不能用于 ARKitVision 示例中的类型

Swift 2 实例成员“circleIndexes”不能用于“GameScene”类型

Swift 不能在属性初始化器中使用实例成员

(Swift Playground 模板)使用 Swift 5.1 编译的模块不能被 Swift 5.1.3 编译器导入

swift-Xcode7.x(7.1,7.2,7.3)新建playground运行不能运行

无法在 Swift 中获取 UITextField 的 .text 属性 - 错误:“实例成员 'textFieldName' 不能用于类型 'ViewController'