1

Titanium中如何生成本机代码?我已经阅读了互联网上的文档,从中我只能理解高级架构,但我需要更多关于深入工作的细节。例如。当我们使用 Ti.UI.createButton() 在 Titanium 中创建一个按钮时,它是如何与本机代码绑定的,我们如何获得与使用本机代码相同的按钮。

是 UIButton 对象创建并返回(只谈论 abt iOS)还是执行流程不同?另外我应该在哪里查看本机代码以便更好地理解?

4

1 回答 1

1

首先,每个平台的工作方式是不同的,因此不可能有效地概括,因为平台是如此具体。

对于 iOS,Titanium 使用称为KrollObject的本机桥包装对象。这些代理对象形成了从 Javascript 对象到本机代码中的本机对象的桥梁。对于您的 UIButton 用例,UIButton 已创建但不会返回到 Javascript,您可以通过 Kroll 桥控制它。(作为旁注,Kroll 是提炼钛材料的过程,双关语)。

真的,你不需要知道编写模块的真正内在细节,特别是因为它需要大量的本地平台知识(在这种情况下,你没有理由使用钛)。

这是一个很棒的视频,介绍了上一个 Codestrong 的所有工作原理。如果您真的想了解垃圾收集和对象生命周期的工作原理,请阅读此视频。

于 2012-09-06T21:01:48.010 回答