随着新的XCode得到"常量与布尔表达式的比较总是假的"

时间:2015-05-05 15:42:51

标签: ios objective-c cocoa-touch

下载XCode 6.3后,现在突然出现以下代码块:

AVKeyValueStatus tracksStatus = [inputAsset statusOfValueForKey:@"tracks" error:&error];
if (!tracksStatus == AVKeyValueStatusLoaded)
{
      return;
}

我现在得到:

  

常量与布尔表达式的比较始终为false   计算器

任何人都可以解释为什么会突然发生这种情况以及重写此表达式的正确方法是什么?

3 个答案:

答案 0 :(得分:7)

我认为不是这样:

if (!tracksStatus == AVKeyValueStatusLoaded)

你想要这个:

if (tracksStatus != AVKeyValueStatusLoaded)

(假设你想比较这两件事是不相等的。)

答案 1 :(得分:1)

我认为这是由于操作员在C中的先行者所在!优先级高于==。见enter link description here。所以试着把()放在“tracksStatus == AVKeyValueStatusLoaded”上

if (!(tracksStatus == AVKeyValueStatusLoaded))
{
  return;
}

答案 2 :(得分:0)

替换这个:

  

if(!tracksStatus == AVKeyValueStatusLoaded)

用这个:

  

if(tracksStatus!= AVKeyValueStatusLoaded)

工作!