在 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 中缺少它。
我用来获取 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 中缺少它。