25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
-
+
|
@class OFString;
#ifdef OF_HAVE_BLOCKS
typedef void (^of_array_enumeration_block_t)(id object, size_t index,
BOOL *stop);
typedef BOOL (^of_array_filter_block_t)(id odject, size_t index);
typedef id (^of_array_map_block_t)(id object, size_t index);
typedef id (^of_array_reduce_block_t)(id object1, id object2);
typedef id (^of_array_reduce_block_t)(id left, id right);
#endif
/**
* \brief A class for storing objects in an array.
*/
@interface OFArray: OFObject <OFCopying, OFMutableCopying, OFCollection,
OFSerialization>
|
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
|
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
|
-
-
+
+
|
*
* If the array is empty, it will return nil.
*
* If there is only one object in the array, that object will be returned and
* the block will not be invoked.
*
* If there are at least two objects, the block is invoked for each object
* except the first, where object1 is always to what the array has already been
* reduced and object2 what should be added to object1.
* except the first, where left is always to what the array has already been
* reduced and right what should be added to left.
*
* \param block A block which reduces two objects into one, which is called for
* all objects except the first
* \return The array reduced to a single object
*/
- (id)reduceUsingBlock: (of_array_reduce_block_t)block;
#endif
|