美文网首页成长笔记
【已解决】Xcode代码提示变量为Error Type

【已解决】Xcode代码提示变量为Error Type

作者: 君赏 | 来源:发表于2017-08-22 14:18 被阅读14次

    Xcode代码提示变量为Error Type

    我之前使用Masonry布局时候经常需要设置偏移量,但是呢在设置布局哪里设置死数据不方便进行调试更换就想用一个变量。

    我声明一个Struct储存一个试图的上,左,下,右的偏移量和宽度和高度。

    public struct CWSize {
        public var top:CGFloat = 0
        public var leading:CGFloat = 0
        public var bottom:CGFloat = 0
        public var trailing:CGFloat = 0
        public var width:CGFloat = 0
        public var height:CGFloat = 0
        public var size:CGSize {
            return CGSize(width: width, height: height)
        }
    }
    

    我声明UIView的扩展

    public extension UIView {
        
        public func cw_makeSize(_ block:(_ size: CWSize) -> Void) {
            let size = CWSize()
            block(size)
            objc_setAssociatedObject(self, "CWSize", size, objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN_NONATOMIC)
        }
        
        public func cw_makeConstraints(_ block:(_ maker: ConstraintMaker, _ size: CWSize) -> Void) {
            guard let size = objc_getAssociatedObject(self, "CWSize") as? CWSize else {
                return
            }
            self.snp.makeConstraints { (maker) in
                block(maker,size)
            }
        }
    }
    

    看着没什么问题,但是在Xcode敲代码时候提示 Error Type就是死活不提示,很不方便。

    view.cw_makeSize({ (size) in
        size
    })
    

    解决办法

    我调用是在一个属性的懒加载的方法里面进行调用的会提示Error Type但是如果自己手动敲出来还是可以识别的

    我在懒加载方法之外调用就可以完全的提示了,虽然解决了,但是在懒加载的初始化方法里面为什么不能提示暂时不知道什么原因

    相关文章

      网友评论

        本文标题:【已解决】Xcode代码提示变量为Error Type

        本文链接:https://www.haomeiwen.com/subject/oxkldxtx.html