Swift 2.0 错误:警告:无法加载任何 Objective-C 类信息

Posted

技术标签:

【中文标题】Swift 2.0 错误:警告:无法加载任何 Objective-C 类信息【英文标题】:Swift 2.0 Error: warning: could not load any Objective-C class information 【发布时间】:2015-11-06 17:30:23 【问题描述】:

我收到此错误:

警告:无法加载任何 Objective-C 类信息

还有

线程 1:EXC_BAD_ACCESS(code=2,address=0x7fff5588dfb8)

...分配此类时:

import UIKit
import QuartzCore


class CERangeSliderKnobLayer: CALayer 

    var highlighted = false
    weak var slider = CERangeSlider()


像这样的变量:

import UIKit

    class CERangeSlider: UIControl 

        /*
        // Only override drawRect: if you perform custom drawing.
        // An empty implementation adversely affects performance during animation.
        override func drawRect(rect: CGRect) 
            // Drawing code
        
        */
        var maximumValue = CGFloat()
        var minimumValue = CGFloat()
        var upperValue = CGFloat()
        var lowerValue = CGFloat()

        var trackLayer = CERangeSliderKnobLayer()
        var upperKnobLayer = CERangeSliderKnobLayer()
        var lowerKnobLayer = CERangeSliderKnobLayer()

    ...
    

这毫无意义。我所知道的项目中绝对没有任何目标 C。这都是斯威夫特。

更新

如果你不那样初始化它们,而是这样写,即

var trackLayer: CERangeSliderKnobLayer!

然后你得到一个错误:

致命错误:在展开可选值时意外发现 nil

类似:

trackLayer.backgroundColor = UIColor.blueColor().CGColor

【问题讨论】:

【参考方案1】:

由于某种原因,答案是更改我的类,以便不初始化弱属性:

import QuartzCore


class CERangeSliderKnobLayer: CALayer 

    var highlighted = false
    weak var slider: CERangeSlider!


【讨论】:

以上是关于Swift 2.0 错误:警告:无法加载任何 Objective-C 类信息的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 内存警告 - 无法加载任何 Objective-C 类信息

Swift 2.0 并发出警告

CoreData:警告:无法加载名为的类

如何在 JavaFX 2.0 中创建和显示通用对话框(错误、警告、确认)?

Swift 2.0:推断闭包类型错误

如何在 swift 2.0 中使用 catch 概念