黑马程序员技术交流社区

标题: while if 点语法赋值疑问 [打印本页]

作者: 一只小菜鸟    时间: 2014-4-26 10:13
标题: while if 点语法赋值疑问
  1.         NSDictionary *dict2 = @{@"k1": @"v1", @"k2": @"v2" };
  2.         NSEnumerator *enumerator = [dict keyEnumerator];
  3.         id key = nil;
  4.         //这样是不会警告,
  5.         while (key = [enumerator nextObject]) {
  6.         //改成这样key = enumerator.nextObject 就会出现警告。赋值必须得圆括号
  7.         //得改成while((key = enumerator.nextObject));if等同
  8.         //我简单的测试了下,自己建了个类,用自己的get方法同样出现这个警告
  9.             
  10.         //另外,点语法不是get,和set方法么,enumerator.nextObject,[enumerator nextObject]返回值不同?
  11.         //求科普,[enumerator nextObject],这为什么没警告,
  12.             id value = [dict2 objectForKey:key];
  13.             NSLog(@"%@", value);
复制代码


作者: gmadong@163.com    时间: 2014-4-26 16:02
xcode警告不是很明显吗 using the result of an assignment as a condition without parentheses  意思是:利用赋值的结果作为一个条件没有括号


作者: 一只小菜鸟    时间: 2014-4-26 16:19
gmadong@163.com 发表于 2014-4-26 16:02
xcode警告不是很明显吗 using the result of an assignment as a condition without parentheses  意思是: ...

。。。。。。。你没看清我问的是什么。。。
我问的是key = [enumerator nextObject],没警告,
key = enumerator.nextObject   有警告  这两者的区别




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2