如何在xcframwork ios中访问公共swift文件?

问题描述

我在使用xcframwork时遇到问题。创建xcframwork时,我的属性显示在主项目情节提要中。当我创建框架时,它将在我的情节提要中显示所有属性

我已经创建了以下代码

@objc 
public extension UIView  {
        // Note  : Corner radius and shadow not work both side by side so you need to outlet and set layer radius
        // other wise you can set layer.cornerradius in user defines
       
        //MARK: Border COLOR
        @IBInspectable
        var borderColor: UIColor? {
            get {
                return self.borderColor
            }
            set {
                self.layer.borderColor = newValue?.cgColor
            }
        }
    }

1使用框架

enter image description here

显示所有属性

enter image description here

现在我创建了xcframework。所有属性都不会显示现在,我对此感到困惑。我也添加我的源代码以查看我的问题。

https://drive.google.com/file/d/1-Zz3AhI9iT09wqv0d5qCxptLg0B5LOq0/view?usp=sharing

任何人都可以帮助我如何创建xcframwork并显示所有属性,例如普通框架。请帮助我。

解决方法

框架中的属性是内部的。如果未指定访问修饰符,则Swift默认为internal。 enter image description here

因此在您的代码中:

var radTopLeft:CGFloat = 0 {
        didSet {
            self.setNeedsLayout()
        }
    }

等效于:

internal var radTopLeft:CGFloat = 0 {
        didSet {
            self.setNeedsLayout()
        }
    }

因此,框架外的任何代码都无法访问此属性。为了使框架使用者可以访问它,您必须将属性标记为公共。即

public var radTopLeft:CGFloat = 0 {
        didSet {
            self.setNeedsLayout()
        }
    }

测试一下:https://drive.google.com/file/d/1_WSGKRKNt4lytrVEuozn8W4WYRR6nPif/view?usp=sharing