0

可能重复:
问号和冒号(?:三元运算符)在objective-c中是什么意思?

    NSString *requestString = (self.isFirstTimeDownload) ? [NSString stringWithFormat:[self.commonModel.apiURLs objectForKey:@"updateNewsVerPOST"],@""] : [NSString stringWithFormat:[self.commonModel.apiURLs objectForKey:@"updateNewsVerPOST"], [[NSUserDefaults standardUserDefaults] objectForKey:@"localnewsupdate"]];

谁能帮我理解这是什么()?和:在Objective-c中?谢谢!!

4

2 回答 2

4

那是一个三元运算符。

例子:

  bool foo(int i)
  {
      if ( i > 5 ) 
          return true;
      else
          return false;
  }

相当于

  bool foo(int i)
  {
      return ( i > 5 ) ? true : false;
  }

您可以省略第一个操作数:x ? : b在这种情况下,当 x 不为零时,表达式的值为 x,否则为 b。例子:

int i = 1;
i = 2 ? : 3;   // equivalent to i = 2; (because 2 is non zero)
i = YES ? : 3; // equivalent to i = 1; (because YES is 0x01, which is not zero)
于 2012-09-26T16:04:25.147 回答
0

这是一个三元运算符

NSString *requestString = ( boolean condition ) ? @"valueIfTrue" : @"valueIfFalse";
于 2012-09-26T16:05:26.297 回答