簡體   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