ios - 调用类内结构内的函数

标签 ios swift

我有两个文件:ClassA.swift 和 ClassB.swift

class ClassA: NSObject {
    struct StructA {
        func talk(string: String) {
            println("I say: \(string)")
        }
    }
}


class ClassB: NSObject {
    func makeItTalk(string: String) {
        ClassA.StructA.talk("Hello") <--------------
    }
}

我收到以下错误消息

Type 'ClassA.StructA' does not conform to protocol 'StringLiteralConvertible'

知道为什么吗?这真的是无法实现的事情吗?

最佳答案

您正在静态上下文中访问 StructA,但您需要它的一个实例:

class ClassB: NSObject {
    func makeItTalk(string: String) {
        var myStruct = ClassA.StructA()
        myStruct.talk("Hello")
    }
}

或者,如果您的目标是静态访问该方法,只需将其声明为静态结构方法:

static func talk(string: String) {
    println("I say: \(string)")
}

关于ios - 调用类内结构内的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26245248/

相关文章:

iphone - 动画中关键值的标识DidStop

javascript - 是否可以使用 iframe API 在 iOS 的浏览器上播放 youtube 视频?

ios - 焦点在 UITableView 之外以移除键盘

ios - 如何防止嵌入导航 Controller 的 View Controller 中的自动旋转?

swift - 在 swift 1.2 中向以编程方式创建的按钮添加约束

ios - 为什么我不能用字符串下标 Dictionary<String, Int>?

ios - 将 Team Foundation Server 用于 iOS 应用程序

ios - 以编程方式创建通用矢量图像

swift - 使用 UIPanGestureRecognizer 在限定区域内拖动 UIView

swift - 未获取 "requires explicit use of ' self' 以使捕获语义显式”Xcode 中的错误,构建在应该失败时成功