SDWebImage3.0后在xcode<4.5的环境中使用出错

来源:互联网 发布:知乎一句话介绍 编辑:程序博客网 时间:2024/05/11 18:23

以前用的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有效。甚至,你也可以给你自己的类提供中括号操作符对应的方法。具体做法是实现如下两个方法:

12
- (id)objectAtIndexedSubscript:(NSUInterger)idx;- (void)setObject:(id)value atIndexedSubscript:(NSUInteger)idx;

原创粉丝点击