例如,在NSDictionary
Cocoa框架中访问变量通常会定义密钥,例如UIKeyboardBoundsUserInfoKey
。如何检查是否在运行时定义了键?我找到了关于如何检查类和函数的示例,但没有找到常量。
答案 0 :(得分:46)
Jasarien的答案大致正确,但在LLVM 1.5下容易出现问题,编译器将优化if语句。
您还应该将常量的地址与NULL
进行比较,而不是nil
(nil
具有不同的语义)。
更准确的解决方案是:
BOOL isKeyboardBoundsKeyAvailable = (&UIKeyboardBoundsUserInfoKey != NULL);
if (isKeyboardBoundsKeyAvailable) {
// UIKeyboardBoundsUserInfoKey defined
}
答案 1 :(得分:30)
检查它的指针是否为nil,就像这样
if (&UIKeyboardBoundsUserInfoKey != nil)
{
//Key exists
}