NSArray(QMUI)

@interface NSArray<ObjectType> (QMUI)

/**
 将多个对象合并成一个数组,如果参数类型是数组则会将数组内的元素拆解出来加到 return 内(只会拆解一层,所以多维数组不处理)

 @param object 要合并的多个数组
 @return 合并完的结果
 */
+ (instancetype)qmui_arrayWithObjects:(ObjectType)object, ...;

/**
 *  将多维数组打平成一维数组再遍历所有子元素
 */
- (void)qmui_enumerateNestedArrayWithBlock:(void (NS_NOESCAPE^)(id obj, BOOL *stop))block;

/**
 *  将多维数组递归转换成 mutable 多维数组
 */
- (NSMutableArray *)qmui_mutableCopyNestedArray;

/**
 *  过滤数组元素,将 block 返回 YES 的 item 重新组装成一个数组返回
 */
- (NSArray<ObjectType> *)qmui_filterWithBlock:(BOOL (NS_NOESCAPE^)(ObjectType item))block;

/**
*  转换数组元素,将每个 item 都经过 block 转换成一遍 返回转换后的新数组
*/
- (NSArray *)qmui_mapWithBlock:(id (NS_NOESCAPE^)(ObjectType item))block;

@end

Undocumented

  • 将多个对象合并成一个数组,如果参数类型是数组则会将数组内的元素拆解出来加到 return 内(只会拆解一层,所以多维数组不处理)

    Declaration

    Objective-C

    + (nonnull instancetype)qmui_arrayWithObjects:(nonnull ObjectType)object, ...;

    Parameters

    object

    要合并的多个数组

    Return Value

    合并完的结果

  • 将多维数组打平成一维数组再遍历所有子元素

    Declaration

    Objective-C

    - (void)qmui_enumerateNestedArrayWithBlock:
        (nonnull void (^)(id _Nonnull, BOOL *_Nonnull))block;

    Swift

    func qmui_enumerateNestedArray(_ block: (Any, UnsafeMutablePointer<ObjCBool>) -> Void)
  • 将多维数组递归转换成 mutable 多维数组

    Declaration

    Objective-C

    - (nonnull NSMutableArray *)qmui_mutableCopyNestedArray;

    Swift

    func qmui_mutableCopyNestedArray() -> NSMutableArray
  • 过滤数组元素,将 block 返回 YES 的 item 重新组装成一个数组返回

    Declaration

    Objective-C

    - (nonnull NSArray<ObjectType> *)qmui_filterWithBlock:
        (nonnull BOOL (^)(ObjectType _Nonnull))block;

    Swift

    func qmui_filter(_ block: (Any) -> Bool) -> [Any]
  • 转换数组元素,将每个 item 都经过 block 转换成一遍 返回转换后的新数组

    Declaration

    Objective-C

    - (nonnull NSArray *)qmui_mapWithBlock:
        (nonnull id _Nonnull (^)(ObjectType _Nonnull))block;

    Swift

    func qmui_map(_ block: (Any) -> Any) -> [Any]