以前用的SDWebImage是3.0以前的,在xcode4.3中,没问题
今天用的SDWebImage3.0在,编译的时候没错,调UIImageView+WebCache.h中setImageWithURL:一运行就挂掉,报[nsarray objectAtIndexedSubscript]错,整了好半天才知道objectAtIndexedSubscript是objective-c的新特性,在xcode4.5以后才有。用xcode4.5运行,没错了。
这个新特性在WWDC2012的视频中提到了,但是在XCode4.4中没有实现。也是一个很体贴的语法糖,它允许你用中括号来代替原本的方法来获取和设置数组元素。
简单来说,以前的 [array objectAtIndex:idx] 和 [array replaceObjectAtIndex:idx withObject:obj],可以直接写作 array[idx] 和 array[idx] = obj了。其实这个特性在很多高级语言中都实现了,只是Objective-C生于80年代,一直没改进这个。
这个改进同样对NSDictionary有效。甚至,你也可以给你自己的类提供中括号操作符对应的方法。具体做法是实现如下两个方法:
1
2
| |