implementAsBlocking static method
NSLocking
implementAsBlocking({
- required void lock(),
- required void unlock(),
- bool $keepIsolateAlive = true,
Builds an object that implements the NSLocking protocol. To implement
multiple protocols, use addToBuilder or objc.ObjCProtocolBuilder directly. All
methods that can be implemented as blocking 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
static NSLocking implementAsBlocking({
required void Function() lock,
required void Function() unlock,
bool $keepIsolateAlive = true,
}) {
final builder = objc.ObjCProtocolBuilder(debugName: 'NSLocking');
NSLocking.lock.implementAsBlocking(builder, lock);
NSLocking.unlock.implementAsBlocking(builder, unlock);
builder.addProtocol($protocol);
return NSLocking.castFrom(
builder.build(keepIsolateAlive: $keepIsolateAlive),
);
}