为什么 C 断言对于 Xcode 模拟器而不是真实设备失败?

问题描述 投票:0回答:0

我的 Xcode-iOS-Swift 项目中有一个 C 库,一切都按预期工作,除了这个断言失败只发生在 Xcode iPhone 模拟器而不是物理 iPhone 上。

这里的第一行断言失败:

if (ALWAYS(*out)) {
    return E_SUCCESS;
} else {
    return E_FAILED;
}

#if defined(H3_OMIT_AUXILIARY_SAFETY_CHECKS)
#define ALWAYS(X) (1)
#define NEVER(X) (0)
#elif !defined(NDEBUG)
#define ALWAYS(X) ((X) ? 1 : (assert(0), 0)) <-- culprit
#define NEVER(X) ((X) ? (assert(0), 1) : 0)
#else
#define ALWAYS(X) (X)
#define NEVER(X) (X)
#endif

*out
是一个 64 位整数,当此断言失败时它不是
null
。为什么这只会发生在模拟器上?

ios c xcode ios-simulator
© www.soinside.com 2019 - 2024. All rights reserved.