Implement RCTConvertOptionalVecToArray(const folly::Optional<ContainerT> &vec)
Summary: There are two implementations of `RCTConvertVecToArray`. The first implementation: ``` template<typename ContainerT> NSArray *RCTConvertVecToArray(const ContainerT &vec, id (^convertor)(typename ContainerT::value_type element)) { NSMutableArray *array = [NSMutableArray new]; for (size_t i = 0, size = vec.size(); i < size; ++i) { id object = convertor(vec[i]); array[i] = object ?: (id)kCFNull; } return array; } ``` The purpose of the second implementation is to default the convertor function to the identify function: ``` template<typename ContainerT> NSArray *RCTConvertVecToArray(const ContainerT &vec) { return RCTConvertVecToArray(vec, ^id(typename ContainerT::value_type element) { return element; }); } ``` Meanwhile, there's only one implementation of `RCTConvertOptionalVecToArray`: ``` template<typename ContainerT> NSArray *RCTConvertOptionalVecToArray(const folly::Optional<ContainerT> &vec, id (^convertor)(typename ContainerT::value_type element)) { return vec.hasValue() ? RCTConvertVecToArray(vec.value(), convertor) : nil; } ``` In this diff, I overload `RCTConvertOptionalVecToArray` to default the convertor to the identify function. Changelog: [iOS][Added] - Added RCTConvertOptionalVecToArray with default converter Reviewed By: PeteTheHeat Differential Revision: D18148891 fbshipit-source-id: d7d5f05cda06c9fa5374334ec4e9dbbd8b6d2eba
This commit is contained in:
Родитель
3beb8341fd
Коммит
c29ec64d94
|
@ -40,6 +40,12 @@ NSArray *RCTConvertOptionalVecToArray(const folly::Optional<ContainerT> &vec, id
|
|||
return vec.hasValue() ? RCTConvertVecToArray(vec.value(), convertor) : nil;
|
||||
}
|
||||
|
||||
template<typename ContainerT>
|
||||
NSArray *RCTConvertOptionalVecToArray(const folly::Optional<ContainerT> &vec)
|
||||
{
|
||||
return vec.hasValue() ? RCTConvertVecToArray(vec.value(), ^id(typename ContainerT::value_type element) { return element; }) : nil;
|
||||
}
|
||||
|
||||
bool RCTBridgingToBool(id value);
|
||||
folly::Optional<bool> RCTBridgingToOptionalBool(id value);
|
||||
NSString *RCTBridgingToString(id value);
|
||||
|
|
Загрузка…
Ссылка в новой задаче