天天看點

objc寫一個NSMutableArray不連續索引替換對象的方法

NSMutableArray内置的方法-(void)replaceObjectsAtIndexes:(NSIndexSet*)set withObjects:(NSArray*)objs

隻能替換一段連續索引内的對象,比如2 to 10之間的對象,如果我想要替換1,3,5索引位置的對象需要自己寫代碼。

在ruby中對于數組對象有一個values_at方法可以取得不連續索引的對象:

如果是替換不連續索引的對象,稍微麻煩點:

如果idxes數量小于objs則忽略多餘的對象,反之如果idxes數量大于objs則用nil補足:

下面寫一個objc中類似的實作:

當然ruby裡也可以做類似的操作,why not?ruby比objc還要動态:

see!ruby擴充類要比objc簡單的多,是以看swift的了 :)