objective c - Fast Enumeration on an NSArray category for NSIntegers -
since use nsinteger arrays frequently, wrote category nsarray (and 1 nsmutablearray too) adds methods such integeratindex:, arraybyaddinginteger:, etc. methods take care of wrapping/unwrapping nsinteger in nsnumber object.
what i'm wondering whether there way can enhance category can fast enumeration on nsintegers. able write:
nsarray* arrayofintegers; . . . for(nsinteger nextinteger in arrayofintegers) { } ….so "nextinteger" pulled out of nsnumber object behind scenes. can this?
i doubt there clean way of doing nsfastenumeration, heavily depends on nextobject method.
but, in way, adding block method it:
@interface nsarray (integers) -(void)eachinteger:(void(^)(nsinteger))block; @end @implementation nsarray (integers) -(void)eachinteger:(void(^)(nsinteger))block { (nsnumber *num in self) { block(num.integervalue); } } @end that way, use in code in similar way:
nsarray *arr = [nsarray arraywithobjects:[nsnumber numberwithint:23], [nsnumber numberwithint:42], nil]; ... [arr eachinteger:^(nsinteger i) { nslog(@"the int %i", i); }]; // => // int 23 // int 42 perhaps might want take @ nsarray categories on lumumba framework, happens written me :d
Comments
Post a Comment