implement static method

NSUserActivityDelegate implement({
  1. void userActivityWillSave_(
    1. NSUserActivity
    )?,
  2. void userActivityWasContinued_(
    1. NSUserActivity
    )?,
  3. void userActivity_didReceiveInputStream_outputStream_(
    1. NSUserActivity,
    2. NSInputStream,
    3. NSOutputStream
    )?,
  4. bool $keepIsolateAlive = true,
})

Builds an object that implements the NSUserActivityDelegate protocol. To implement multiple protocols, use addToBuilder or objc.ObjCProtocolBuilder directly.

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

Implementation

static NSUserActivityDelegate implement({
  void Function(NSUserActivity)? userActivityWillSave_,
  void Function(NSUserActivity)? userActivityWasContinued_,
  void Function(NSUserActivity, objc.NSInputStream, objc.NSOutputStream)?
  userActivity_didReceiveInputStream_outputStream_,
  bool $keepIsolateAlive = true,
}) {
  final builder = objc.ObjCProtocolBuilder(
    debugName: 'NSUserActivityDelegate',
  );
  NSUserActivityDelegate.userActivityWillSave_.implement(
    builder,
    userActivityWillSave_,
  );
  NSUserActivityDelegate.userActivityWasContinued_.implement(
    builder,
    userActivityWasContinued_,
  );
  NSUserActivityDelegate.userActivity_didReceiveInputStream_outputStream_
      .implement(builder, userActivity_didReceiveInputStream_outputStream_);
  builder.addProtocol($protocol);
  return NSUserActivityDelegate.castFrom(
    builder.build(keepIsolateAlive: $keepIsolateAlive),
  );
}