ios - 自定义框架中的公共(public)类

标签 ios xcode

在我的自定义框架中,如果我想将某些类/方法公开给 swift 或 objective-c,我必须将它们声明为公共(public)的,但是使用此方法,类和方法将在框架 header 中公开。 有没有办法防止将方法公开给框架 header ?

最佳答案

如果您的框架是用 Swift 编写的,则使用访问级别 - 公共(public)、开放、内部、文件私有(private)或私有(private) - documentation .您可能想使用internal

如果您的框架是用 Objective-C 编写的,则可以使用前向声明。而不是写

// ClassA.h

#import "ClassB.h"

@interface ClassA : NSObject

- (void)doSomethingWithClassB:(ClassB*)obj;

@end

// ClassA.h

@class ClassB;

@interface ClassA : NSObject

- (void)doSomethingWithClassB:(ClassB*)obj;

@end

// ClassA.m

#import "ClassB.h"

如果您的 ClassA 没有继承自 ClassB,您可以在 前向声明 ClassB >ClassA header - 在 header 中,您没有从 ClassB 调用任何方法,您只使用指向它的指针,因此编译器不需要知道 ClassB 的完整签名.相反,您 promise 在实际尝试使用它之前包含 ClassB 的完整定义。

关于ios - 自定义框架中的公共(public)类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45345715/

相关文章:

ios - Flutter:如何创建一个新项目

ios - 为什么我的代码没有向键盘添加工具栏和完成按钮?

swift - 如何在 SwiftUI 中制作粘性栏?

c# - MonoTouch instancesRespondToSelector 实现在哪里?

ios - iPhone 模拟器上的高度始终为零

ios - 如何使用 objective-c 直接在iPhone照片中打开特定相册

ios - 如何在应用程序在前台运行时忽略远程通知,但在单击通知启动应用程序时处理它?

xcode - iOS 应用程序中的空白应用程序图标

ios - 在 XCODE 中使用我自己的 Cell 对象

ios - * 由于未捕获的异常 'NSInternalInconsistencyException' 在 iOS 中终止应用程序