diff options
Diffstat (limited to 'platform/darwin/src/MGLConversion.h')
-rw-r--r-- | platform/darwin/src/MGLConversion.h | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/platform/darwin/src/MGLConversion.h b/platform/darwin/src/MGLConversion.h index 0d18d4e716..92a6720e6a 100644 --- a/platform/darwin/src/MGLConversion.h +++ b/platform/darwin/src/MGLConversion.h @@ -62,10 +62,14 @@ public: #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wnullability-completeness" template <class Fn> - static optional<Error> eachMember(const Holder&, Fn&&) { + static optional<Error> eachMember(const Holder& holder, Fn&& visit) { #pragma clang diagnostic pop - // Not implemented (unneeded for MGLStyleFunction conversion). - NSCAssert(NO, @"eachMember not implemented"); + [holder.value enumerateKeysAndObjectsUsingBlock:^(id _Nonnull key, id _Nonnull obj, BOOL * _Nonnull stop) { + auto result = visit(std::string(static_cast<const char *>([key UTF8String])), obj); + if (result) { + *stop = YES; + } + }]; return {}; } |