代码之家  ›  专栏  ›  技术社区  ›  Art Gillespie

iOS确定是否在运行时提供accelerate.framework

  •  4
  • Art Gillespie  · 技术社区  · 14 年前

    是否有任何方法确定accelerate.framework在运行时是否可用? 从直C或C++ 文件夹?

    我发现的条件编码的例子似乎都需要客观的C自省(例如, respondsToSelector )和/或Objective-C API(例如,uidevice's systemVersion 成员)

    1 回复  |  直到 14 年前
        1
  •  4
  •   Stefan Arentz    14 年前

    通常的诀窍是你 薄弱环节 然后检查该框架导出的函数指针的实际可用性。如果框架由于不可用而未能链接,则函数将 NULL .

    所以 Accelerate.framework 您可以这样做:

    #include <Accelerate/Accelerate.h>
    
    if (cblas_sdsdot) {
        NSLog(@"Yay we got Accelerate.framework");
    } else {
        NSLog(@"Oh no, no Accelerate.framework");
    }
    

    这在 TN2064 - Ensuring Binary Backwards Compatibility