错误:静态成员 copyWithZone 不能用于 UIImageView 类型的实例

Posted

技术标签:

【中文标题】错误:静态成员 copyWithZone 不能用于 UIImageView 类型的实例【英文标题】:error: Static member copyWithZone cannot be used on instance of type UIImageView 【发布时间】:2017-01-12 12:18:29 【问题描述】:
class MDCollectionViewLayoutAttributes : UICollectionViewLayoutAttributes

    var color: UIColor = UIColor.whiteColor()
    var image : UIImageView!

    override func copyWithZone(zone: NSZone) -> AnyObject
    
        let newAttributes: MDCollectionViewLayoutAttributes = super.copyWithZone(zone) as! MDCollectionViewLayoutAttributes
        newAttributes.color = self.color.copyWithZone(zone) as! UIColor
        newAttributes.image = UIImageView(frame:newAttributes.bounds)
        newAttributes.image.image = UIImage(named:"Appetizer.png")

        newAttributes.image = self.image.copyWithZone(zone) as! UIImageView// this is giving me an error
        return newAttributes
    

我需要在下面的代码中声明一个图像以将其设置为部分背景,但它给了我一个错误。

override func layoutAttributesForElementsInRect(rect: CGRect) -> [UICollectionViewLayoutAttributes]?

    let attributes = super.layoutAttributesForElementsInRect(rect)
    var allAttributes = [UICollectionViewLayoutAttributes]()

    if let attributes = attributes
    

        for attr in attributes
        
            if (attr.representedElementCategory == UICollectionElementCategory.Cell && attr.frame.origin.x == self.sectionInset.left)
            
                                   let decorationAttributes = SBCollectionViewLayoutAttributes(forDecorationViewOfKind: "sectionBackground", withIndexPath: attr.indexPath)

              //  decorationAttributes.color = UIColor.brownColor().colorWithAlphaComponent(1)

有什么帮助吗?

【问题讨论】:

【参考方案1】:

UIImageView 不符合 NSCopying 协议,这就是 copyWithZone 不起作用的原因。您可以创建 UIImageView 或其子类的扩展,以实现 NSCopying 一致性。

【讨论】:

有什么例子吗?或任何示例链接?

以上是关于错误:静态成员 copyWithZone 不能用于 UIImageView 类型的实例的主要内容,如果未能解决你的问题,请参考以下文章

静态成员“负载”不能用于“AppDelegate”类型的实例

错误分析:非静态成员引用必须与特定对象相对

为啥静态成员函数只能在类定义中声明为静态,而不能在其自己的定义中声明?

一个类不能有自己的静态 constexpr 成员实例吗?

在 awakeFromNib() 上 - 错误实例成员 'button' 不能用于类型 'CustomView'

实例成员不能用于类型 - 错误