繁体   English   中英

为什么子类在框架中不起作用,而扩展在Swift中起作用?

[英]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项目。 两种选择:

  • 将Framework .xcodeproj文件添加到项目中,以允许根据需要编辑任一目标。 请注意,一次只能有一个Xcode项目可以使用它。
  • 将Framework .framework文件添加到项目中,然后确保将其包含在应用程序的链接框架和库中。

现在您已将其添加到Xcode的应用程序项目中,您需要执行以下操作:

  • 如果要使用代码访问open类,请使用以下语法:

     import [framework] 
  • 如果要在情节提要中访问UIKit子类,请添加其超类控件,然后转到Identity Inspector并(1)选择您的框架作为Module并选择子类作为Class

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM