[杂谈] 在 Delphi 中开发 iOS 程序使用非默认框架的步骤

1、使用 SDKTransform 转换生成框架的接口文件,具体参考 前面的一篇 试用笔记。

2、将生成的接口文件放到程序的目录搜索路径中,以便引用。

3、在程序中的 uses 单元中加入对框架的引用。

4、确保在使用之前框架对应的扩展库已经加载,这里提供一个函数,用来完成这一工作:

uses Sysutils,iOSapi.Foundation;
///<summary>尝试加载指定的框架,如果没有加载,则加载它</summary>
///<param name="AFramework">要加载的框架扩展库名称</param>
///<returns>成功,返回 true,失败,返回 false</returns>
function EnsureFrameworkLoaded(AFramework: String): Boolean;
begin
  Result := GetModuleHandle(PWideChar(AFramework)) <> 0;
  if not Result then
  begin
    CocoaPointerConst(AFramework, '@I do not care this field');
    Result := GetModuleHandle(PWideChar(AFramework)) <> 0;
  end;
end;

比如,我们在试用里转换的HealthKit,我们就可以在程序使用上述框架前调用上面的函数,来确保 HealthKit 框架被加载。

if not EnsureFrameworkLoaded(libHealthKit) then
   raise Exception.Create(libHealthKit + ' Can not loaded.');

5、现在可以使用框架中的各种接口了,进一步的内容需要参考你使用的框架的文档了。

【提示】

Delphi 生成的接口文件中,每一个框架中的类都被定义为了接口,然后声明了一个 Txxx 的导入封装。用 Txxx 的 OCClass 属性可以获取到类的相关信息,创建 Txxx 的实例可以实现该接口。

分享到: