库/框架之间的互操作性

Posted

技术标签:

【中文标题】库/框架之间的互操作性【英文标题】:Interoperability among Libraries/Frameworks 【发布时间】:2018-02-14 10:33:59 【问题描述】:

我正在尝试为 UITextView 定义一个占位符,但不幸的是,它与 UITextField 不同,它没有该属性。为了加快我的开发过程,我进行了一些搜索并找到了一个可以解决该问题的库 (https://github.com/MoZhouqi/KMPlaceholderTextView)。

我的问题始于另一个用于字段验证的库 (https://github.com/SwiftValidatorCommunity/SwiftValidator) 的方法/功能的实现。由于我使用的是 UITextView 子类,因此验证器不会将其识别为可验证字段,并要求将其转换为可验证字段。但是一旦我施放它,应用程序在尝试验证 KM TextView 时就会崩溃。

我的问题是,有没有办法让这 2 个库进行交互并使它们相互兼容?如果是这样,我该怎么做?

【问题讨论】:

撇开子类化 UITextView 的危险(它不明确支持被子类化),不清楚你在代码中做什么。为什么验证器不将您的文本视图识别为可验证的?它返回什么错误?当您说“强制转换为可验证字段”时,您是什么意思。它以什么方式崩溃以及在哪里崩溃? 【参考方案1】:

这两个库都在 MIT 许可下。它们只是编译和运行的源代码。您可以将它们拉入您的项目并编辑代码以使其执行您喜欢的任何操作。它只是代码。不要害怕(虽然我能理解为什么这看起来是一项艰巨的任务)。

随后会发生的问题是您随着时间的推移维护这些新库。如果您仔细进行更改并将更改最小化,您应该能够使用对主存储库所做的任何更改来重新设置它们。您可以设置自己的 git 存储库并将更改保存在那里。

【讨论】:

以上是关于库/框架之间的互操作性的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET MVC 和 Oracle DB 之间的互操作 (12c)

Groovy 元类与 Java 8 的互操作性

DDS 中的互操作性

JavaScript与C#的互操作示例

创建了对嵌入的互操作程序集间接引用,无法嵌入互操作类型

映射平台特定的互操作类型