SDWebImage3.0後在xcode

以前用的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
- (id)objectAtIndexedSubscript:(NSUInterger)idx;
- (void)setObject:(id)value atIndexedSubscript:(NSUInteger)idx;

發佈了23 篇原創文章 · 獲贊 0 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章