【发布时间】:2016-11-29 16:20:20
【问题描述】:
在目标 C 中,如果我导入类别,则只会在类中“使用”它。所以如果我有一个类别NSString+category,我必须在我想使用它的每个类中#import NSString+category.h。
我有这样一个类别,我想在其中使用它的一些类是用 Swift 编写的。如果我通过将这个类别放在 Bridging 标头中将其公开给 Swift,所有 swift 类都将使用它。如何避免这种情况?
注意:我的类别实际上是在UIViewController 上,我放在那里的代码只能由某些 ViewControllers 使用。在“其他”ViewControllers 上使用这个 Category 感觉是错误的和不必要的。
【问题讨论】:
-
"在目标 C 中,如果我导入一个类别,它只会在一个类中“被使用”。"这不是真的;类别中的方法始终存在于类中。标头仅提供可见性:如果您尝试在没有导入的情况下调用它们,则会出现编译器错误。
-
啊哈。我的错。我想这有效地回答了我的问题。
-
你能显示代码吗?我还创建了完整的教程来一起使用 Swift 和 Objective-c。 stackoverflow.com/a/40887287/4488252
标签: objective-c swift objective-c-category