我有两个文件: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/