iOS中的控制反转框架和静态库有何不同?

iOS中的控制反转框架和静态库有何不同?,ios,frameworks,inversion-of-control,static-libraries,Ios,Frameworks,Inversion Of Control,Static Libraries,在关于iOS框架与静态库的一个问题中,yoAlex5引用 库本质上是一组可以调用的函数,这些函数现在通常被组织成类。每个调用都会执行一些工作,并将控制权返回给客户端 框架体现了一些抽象的设计,内置了更多的行为。为了使用它,您需要通过子类化或插入您自己的类,将您的行为插入框架中的各个位置。然后,框架的代码在这些点调用您的代码。程序的主控件是反向的,从您移动到框架(控制反转) 有谁能给我举一个iOS的例子,其中代码片段最少,我能理解静态库如何在框架可以时无法支持控制反转?在你提到的问题中,提到了以下

在关于iOS
框架
静态库
的一个问题中,yoAlex5引用

库本质上是一组可以调用的函数,这些函数现在通常被组织成类。每个调用都会执行一些工作,并将控制权返回给客户端

框架体现了一些抽象的设计,内置了更多的行为。为了使用它,您需要通过子类化或插入您自己的类,将您的行为插入框架中的各个位置。然后,框架的代码在这些点调用您的代码。程序的主控件是反向的,从您移动到框架(控制反转)

有谁能给我举一个iOS的例子,其中代码片段最少,我能理解
静态库
如何在
框架
可以时无法支持控制反转?

在你提到的问题中,提到了以下内容:

因此,在iOS上,您唯一的选择基本上是使用静态库或 静态框架(主要区别在于静态框架是 通常作为编译的.a文件分发,而静态库 可以简单地作为子项目包含—您可以看到所有代码- 首先编译的文件及其结果。用作依赖项的文件 由项目负责)

所以iOS上的主要区别实际上是,通常框架是以编译的形式使用的,而库是作为代码使用的。因此,两者原则上都支持控制反转

然而即使框架所能提供的一切都可以由库提供,也应该明确地将某些功能限制在框架中:

框架具有关键的区别功能,将它们与 普通库:
•控制反转:在一个框架内,不同于 库或在标准用户应用程序中,整个程序的流程 控制的范围不是由调用方决定的,而是由框架决定的

•可扩展性:用户可以扩展框架–通常通过 选择性重写–或者程序员可以向 提供特定功能。
•不可修改的框架代码: 一般来说,框架代码不应该被修改,而 接受用户实现的扩展。换句话说,用户可以 扩展框架,但不能修改其代码


控制反转:与库或标准用户应用程序不同,在框架中,整个程序的控制流不是由调用方决定的,而是由框架决定的。我只是想举一个最简单的例子来理解这个特殊的陈述。一个带有伪代码的最小示例也可能会有所帮助。我对您的问题的回答是
有谁能给出一个带有最小代码片段的iOS示例,在这个示例中,我可以理解当框架可以支持控制反转时,静态库如何不能支持控制反转?
应该指出,静态库可以支持控制反转。所以没有这样的例子。为什么wiki要添加这个短语,不像在声明中的库中那样?我遗漏了什么?在我看来,框架通常具有控制反转。但是,由于在iOS中,框架和库之间本质上的实际区别在于它是否是预编译的,因此可以在库中实现控制反转,但不应该。对不起,如果这有点不满意的话。即使已经获得了赏金,我仍在等待更好的答案。