implementAsListener static method

MLNFeature implementAsListener({
  1. required ObjCObjectBase? identifier(),
  2. required void setIdentifier_(
    1. ObjCObjectBase?
    ),
  3. required NSDictionary attributes(),
  4. required void setAttributes_(
    1. NSDictionary
    ),
  5. required ObjCObjectBase? attributeForKey_(
    1. NSString
    ),
  6. required NSDictionary geoJSONDictionary(),
  7. required CLLocationCoordinate2D coordinate(),
  8. NSString? title()?,
  9. NSString? subtitle()?,
  10. bool $keepIsolateAlive = true,
})

Builds an object that implements the MLNFeature protocol. To implement multiple protocols, use addToBuilder or objc.ObjCProtocolBuilder directly. All methods that can be implemented as listeners will be.

If $keepIsolateAlive is true, this protocol will keep this isolate alive until it is garbage collected by both Dart and ObjC.

Implementation

/// multiple protocols, use [addToBuilder] or [objc.ObjCProtocolBuilder] directly. All
  /// methods that can be implemented as listeners will be.
  ///
  /// If `$keepIsolateAlive` is true, this protocol will keep this isolate
  /// alive until it is garbage collected by both Dart and ObjC.
  static MLNFeature implementAsListener({required objc.ObjCObjectBase? Function() identifier, required void Function(objc.ObjCObjectBase? ) setIdentifier_, required objc.NSDictionary Function() attributes, required void Function(objc.NSDictionary ) setAttributes_, required objc.ObjCObjectBase? Function(objc.NSString ) attributeForKey_, required objc.NSDictionary Function() geoJSONDictionary, required CLLocationCoordinate2D Function() coordinate, objc.NSString? Function()? title, objc.NSString? Function()? subtitle, bool $keepIsolateAlive = true}) {
final builder = objc.ObjCProtocolBuilder(debugName: 'MLNFeature');
    MLNFeature.identifier.implement(builder, identifier);    MLNFeature.setIdentifier_.implementAsListener(builder, setIdentifier_);    MLNFeature.attributes.implement(builder, attributes);    MLNFeature.setAttributes_.implementAsListener(builder, setAttributes_);    MLNFeature.attributeForKey_.implement(builder, attributeForKey_);    MLNFeature.geoJSONDictionary.implement(builder, geoJSONDictionary);    MLNFeature.coordinate.implement(builder, coordinate);    MLNFeature.title.implement(builder, title);    MLNFeature.subtitle.implement(builder, subtitle);
builder.addProtocol($protocol);
return MLNFeature.castFrom(builder.build(keepIsolateAlive: $keepIsolateAlive));
  }