gpt4 book ai didi

delphi - 为什么 iOSapi.Foundation 中会注释 NSLogv 过程?

转载 作者:行者123 更新时间:2023-12-03 19:37:31 28 4
gpt4 key购买 nike

在 iOSapi.Foundation.pas 我们有这一行:

//procedure NSLogv(format: PNSString; args: va_list); cdecl; external libFoundation name _PU + 'NSLogv';

为什么它被评论/停用?此过程在标题中定义如下:
FOUNDATION_EXPORT void NSLogv(NSString *format, va_list args) NS_FORMAT_FUNCTION(1,0) NS_NO_TAIL_CALL;

当我尝试取消注释时,出现错误:未定义 va_list。如果我没有犯任何错误,va_list 只是一个指针?

之后怎么调用这个函数?注意:我需要调用这个确切的函数,而不是任何其他日志函数....

最佳答案

NSLogv当您需要包装对 NSLog 的调用时存在用你自己的可变参数函数。但是由于您不能在 Delphi 中编写可变参数函数,因此这种情况不适用。

调用 NSLog反而。这是一个外部定义的可变参数函数。尽管 Delphi 不能用于编写此类东西,但它能够使用它们。

有关更多详细信息,请参阅此主题:Difference between NSLog and NSLogv .

进一步阅读:

  • https://en.m.wikipedia.org/wiki/Variadic_function
  • http://docwiki.embarcadero.com/RADStudio/en/Procedures_and_Functions_(Delphi)#External_Declarations
  • 关于delphi - 为什么 iOSapi.Foundation 中会注释 NSLogv 过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43837881/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com