【发布时间】:2019-07-19 05:56:45
【问题描述】:
在某个时间点,我们可能会尝试查看苹果为 ios 开发提供的包/库的代码。例如:UIViewController、SFSafariViewController 等等。当我们移动到这些包/库的文件中时,我们会发现类似这样的内容。
extension UIViewController {
@available(iOS 5.0, *)
open var children: [UIViewController] { get }
@available(iOS 5.0, *)
open func addChild(_ childController: UIViewController)
@available(iOS 5.0, *)
open func removeFromParent()
@available(iOS 5.0, *)
open func transition(from fromViewController: UIViewController, to toViewController: UIViewController, duration: TimeInterval, options: UIView.AnimationOptions = [], animations: (() -> Void)?, completion: ((Bool) -> Void)? = nil)
@available(iOS 7.0, *)
open var childForStatusBarStyle: UIViewController? { get }
@available(iOS 7.0, *)
open var childForStatusBarHidden: UIViewController? { get }
}
它只是该文件所包含内容的一部分。但这只是一个方法签名,这些方法在其实现中还有更多内容,对用户访问是隐藏的。
我的问题是
这怎么可能?我们如何才能隐藏或仅向用户提供 使用和休息的功能签名隐藏在用户的眼睛之外?
【问题讨论】:
-
使用框架或静态库,iOS是由框架构建的,我昨天不是告诉过你,并提供了教程链接吗?
-
那东西对我没有帮助。所有这些都已经由我完成了。我正在寻找别的东西。可能是我自己不清楚,或者我无法让别人理解。
-
我认为框架或库是您正在寻找的。它隐藏了实现,但显示了方法签名。反正我觉得没有其他选择了,要么共享代码,要么共享框架,要么共享静态库
-
我只创建了框架。但是,当我在项目中添加该 pod 时,我可以看到我的 pod 库中存在的所有单个文件。我正在使用可可豆荚。而且因为该文件是可见的,所以我可以看到整个代码。
-
那么不要在 pod 中发布您的源代码,这些 pod 用于开源软件,通常从 git 签出整个项目。你不希望不提供带有源代码的 pod??