【问题标题】:'unresolved identifier' for return value of Type Method in SwiftSwift 中类型方法返回值的“未解析标识符”
【发布时间】:2015-09-24 21:48:38
【问题描述】:

我正在尝试从另一个文件访问一个文件中类型方法的返回值。也就是说:

文件_1:

class LetterView: UIView {
    class func testFunction() -> CGSize {
        return CGSizeMake(100,200)
    }
}

文件_2:

class AnotherClass {
    func callTestFunction() {
        var result = LetterView.testFunction()
        print("- breakpoint here - ")
    }
}

如果我在调试器中放置断点并执行po result,我会在var result 上收到未解析的标识符错误。但是,如果我将testFunction() 的返回类型更改为Int(比如2)并返回它,那么函数调用将按预期工作。让我感到困惑。

【问题讨论】:

    标签: swift


    【解决方案1】:

    第二个文件是否也导入了 UIKit?此外,您应该将示例从 function 更新为 func。这一切都在操场上工作,导致 UIKit 丢失。

    【讨论】:

    • 这两个文件都导入了 UIKit,感谢您发现“功能”错字。 FWIW,这里的解决方法是返回一个元组,并在调用的另一端将其转换为 CGSize。
    【解决方案2】:

    可能存在一些问题。

    其中一个类有一个测试目标,而另一个没有。您甚至必须将所有类包含在测试目标中,或者一个都不包含。

    如果是 Objective C 类,请检查该类是否在 ObjectiveC 桥接头文件中。

    如果它是 NSManagedObject 子类。在类声明前添加@objc(className)。

    如果它是不同框架的一部分,请确保该类或函数是公共的

    这是原始答案链接:Swift Compiler Error: Use of unresolved identifier 'name'

    【讨论】:

    • 没有测试目标,所以不是这样。这两个类都是纯 Swift 的,与 Core Data 无关,而且它们都在同一个框架中。我一直在关注这样一个事实,即唯一失败的返回类型是 CG ... 类型,并且对此感到好奇。嗯...
    猜你喜欢
    • 2015-02-08
    • 1970-01-01
    • 2015-05-13
    • 1970-01-01
    • 1970-01-01
    • 2016-04-29
    • 2014-08-10
    • 1970-01-01
    相关资源
    最近更新 更多