更新到Xcode 6.3打破了应用程序 - Google GTLTouchStaticLib"不等于空指针总是如此"

and*_*der 4 comparison ios google-drive-api xcode6.3

我在我的应用中使用Google Drive SDK.

自2014年6月左右以来,它一直运作良好.

在更新到Xcode 6.3之后,我的目标都没有构建.

实现文件GTMOAuth2ViewControllerTouch.m包含编译器抱怨的两个块:

if (accessibility == NULL
    && &kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly != NULL) {
        accessibility = kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly;
}
Run Code Online (Sandbox Code Playgroud)

特别是消息:" kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly不等于空指针的地址比较总是如此".

if (accessibility != NULL && &kSecAttrAccessible != NULL) {
    [keychainQuery setObject:(id)accessibility
                      forKey:(id)kSecAttrAccessible];
}
Run Code Online (Sandbox Code Playgroud)

特别是消息:" kSecAttrAccessible不等于空指针的地址比较总是如此".

编译器告诉我,比较时的两个键!= NULL始终为true.

我相信我缺乏计算机科学培训让我无法理解这里的问题 - 也许这只是一种不好的看法?

我已经看过这个问题,但无法理解与我的Google Drive SDK实施文件GTMOAuth2ViewControllerTouch.m相关的问题.

我真的很想了解潜在的问题.

请帮忙...

Sch*_*cal 7

您可以使用:accessibility = kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly;和.而不是那些片段 [keychainQuery setObject:(id)accessibility forKey:(id)kSecAttrAccessible];

这是因为常量永远不会有NULL指针,因此没有理由进行检查.我相信SDK的更新可以修复,但您可以手动完成.