例如,要访问 NSDictionary
中的变量,Cocoa 框架通常会定义键,例如 UIKeyboardBoundsUserInfoKey
。如何检查运行时是否定义了键?我找到了有关如何检查类和函数而不是常量的示例。
最佳答案
Jasarien 的回答大致正确,但在 LLVM 1.5 下容易出现问题,编译器会优化 if 语句。
您还应该将常量的地址与 NULL
进行比较,而不是 nil
(nil
具有不同的语义)。
更准确的解决方案是这样的:
BOOL isKeyboardBoundsKeyAvailable = (&UIKeyboardBoundsUserInfoKey != NULL);
if (isKeyboardBoundsKeyAvailable) {
// UIKeyboardBoundsUserInfoKey defined
}
关于iphone - 检查常量是否在运行时在 Obj-C 中定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3122177/