在 delphi 中请求版本 IOS

ask for version IOS in delphi

我用来获取 ios 应用程序版本的代码不起作用。我不知道我做错了什么。这是代码:

function GetIOSVesion : string;
{$IFDEF IOS}
 var
  AppKey: Pointer;
  AppBundle: NSBundle;
  BuildStr : NSString;
begin
  Result := '?';
  try
    AppKey := (StrToNSStr('CFBundleVersion') as ILocalObject).GetObjectID;

    AppBundle := TNSBundle.Wrap(TNSBundle.OCClass.mainBundle);
    BuildStr := TNSString.Wrap(AppBundle.infoDictionary.objectForKey(AppKey));
    Result := UTF8ToString(BuildStr.UTF8String);

  except
  end;
end;
{$ENDIF}

我得到的错误是: 未声明的标识符:NSBundle 未声明的标识符:NSString 未声明的标识符:strToNSStr 未声明的标识符:ILocalObject

ios 的用途是:

    {$IFDEF APPLE}
 uses
  {$IFDEF IOS}
   iOSapi.Foundation,
  {$ELSE}
  Macapi.Foundation,
  {$ENDIF}
  Macapi.Helpers,
  Macapi.ObjectiveC;
{$ENDIF}

NSBundle 在 Macapi.Foundation 中定义。 mac API 不是 IOS。因此,要么必须将 Macapi.Foundation 添加到 uses 子句,要么不能在 iOS 应用程序中使用 NSBundle,或者 RTL 中缺少它。