[英]Why subclass doesn't work in framework, but extension does in Swift?
我已经在Swift 3中创建了一个自定义框架,具有扩展名(用于String,UIColors等)以及UITableView和UIView的子类。
问题是,当我尝试在另一个项目中使用子类时,它不起作用并崩溃。 扩展的功能可以完美工作...子类不会出现在情节提要中的“可用类”列表中。 (我的班级不在“自定义班级”列表中,“模块”部分为空)
在我的框架中,我的子类是公共的。 我也尝试使用open,但遇到了同样的问题。
希望它足够清楚,任何人都可以帮助我:)
编辑:重现该问题:
创建一个从UIView继承的Custom类,如下所示:
public class CustomView: UIView { public var name: String = "MyName" public func sayMyName() { print("\\(self.name)") } }
创建你的框架
创建一个新项目,然后导入您的框架。
尝试在情节提要中实例化CustomView。
首先,您需要确保您的框架目标可用于您的App项目。 两种选择:
现在您已将其添加到Xcode的应用程序项目中,您需要执行以下操作:
如果要使用代码访问open
类,请使用以下语法:
import [framework]
如果要在情节提要中访问UIKit子类,请添加其超类控件,然后转到Identity Inspector并(1)选择您的框架作为Module
并选择子类作为Class
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.