XCode:使用静态库时界面生成器文件中的未知 class
XCode: unknown class in interface builder file when using static library
我目前正在使用以下环境开发 iPad 应用程序:
- XCode 7
- iOS 9.2
- Swift 2
- 故事板
- 列表项
我的项目包含一个由其他人创建的静态库 (myLib.a)。这个lib包含一堆classes并且已经写在Objective-C中。
我已经在我的 Swift 项目中导入了库 (myLib.a) 以及所有头文件 (.h 文件)。
该库包含一个 class,它是 UITextField 的子class,称为 CustomUITextField。我的项目包含文件 CustomUITextField.h。 class 将特定布局应用于 UITextField。
该库还包含一个名为 LoginViewController 的 UIViewController。我的项目包含文件 LoginViewController.h.
在我的故事板中,我设计了一个 UIViewController 并将 class 更改为 LoginViewController。然后我添加了一个 UITextField 并将其更改为 CustomUITextField。
当我启动我的应用程序时,CustomUITextField 呈现为 UITextField,并且出现错误消息:
Unknown class CustomUITextField in interface builder file
当我在 Storyboard 中同时查看 LoginViewController 和 CustomUITextField 时,它不允许我添加模块名称。就算我强制了,还是一样的问题
当然,如果我创建自己的 LoginViewController 和 CustomUITextField(在 Swift 或 Objective-C 中),一切正常。所以,我想这个库有问题......是否有特定的配置或标志可以在某处使用?
谢谢
我自己找到了答案。
我只需要创建一个 main.swift 文件并强制我的应用加载我的自定义 class。
import UIKit
//My custom class
CustomUITextField.self
UIApplicationMain(Process.argc, Process.unsafeArgv, NSStringFromClass(UIApplication), NSStringFromClass(AppDelegate))
我目前正在使用以下环境开发 iPad 应用程序:
- XCode 7
- iOS 9.2
- Swift 2
- 故事板
- 列表项
我的项目包含一个由其他人创建的静态库 (myLib.a)。这个lib包含一堆classes并且已经写在Objective-C中。 我已经在我的 Swift 项目中导入了库 (myLib.a) 以及所有头文件 (.h 文件)。
该库包含一个 class,它是 UITextField 的子class,称为 CustomUITextField。我的项目包含文件 CustomUITextField.h。 class 将特定布局应用于 UITextField。
该库还包含一个名为 LoginViewController 的 UIViewController。我的项目包含文件 LoginViewController.h.
在我的故事板中,我设计了一个 UIViewController 并将 class 更改为 LoginViewController。然后我添加了一个 UITextField 并将其更改为 CustomUITextField。
当我启动我的应用程序时,CustomUITextField 呈现为 UITextField,并且出现错误消息:
Unknown class CustomUITextField in interface builder file
当我在 Storyboard 中同时查看 LoginViewController 和 CustomUITextField 时,它不允许我添加模块名称。就算我强制了,还是一样的问题
当然,如果我创建自己的 LoginViewController 和 CustomUITextField(在 Swift 或 Objective-C 中),一切正常。所以,我想这个库有问题......是否有特定的配置或标志可以在某处使用?
谢谢
我自己找到了答案。
我只需要创建一个 main.swift 文件并强制我的应用加载我的自定义 class。
import UIKit
//My custom class
CustomUITextField.self
UIApplicationMain(Process.argc, Process.unsafeArgv, NSStringFromClass(UIApplication), NSStringFromClass(AppDelegate))