implementAsBlocking static method
NSKeyedUnarchiverDelegate
implementAsBlocking({
- ObjCObjectBase? unarchiver_cannotDecodeObjectOfClassName_originalClasses_(
- NSKeyedUnarchiver,
- NSString,
- NSArray
- ObjCObjectBase? unarchiver_didDecodeObject_(
- NSKeyedUnarchiver,
- ObjCObjectBase?
- void unarchiver_willReplaceObject_withObject_(
- NSKeyedUnarchiver,
- ObjCObjectBase,
- ObjCObjectBase
- void unarchiverWillFinish_()?,
- void unarchiverDidFinish_()?,
- bool $keepIsolateAlive = true,
Builds an object that implements the NSKeyedUnarchiverDelegate 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 NSKeyedUnarchiverDelegate implementAsBlocking({
objc.ObjCObjectBase? Function(
NSKeyedUnarchiver,
objc.NSString,
objc.NSArray,
)?
unarchiver_cannotDecodeObjectOfClassName_originalClasses_,
objc.ObjCObjectBase? Function(NSKeyedUnarchiver, objc.ObjCObjectBase?)?
unarchiver_didDecodeObject_,
void Function(NSKeyedUnarchiver, objc.ObjCObjectBase, objc.ObjCObjectBase)?
unarchiver_willReplaceObject_withObject_,
void Function(NSKeyedUnarchiver)? unarchiverWillFinish_,
void Function(NSKeyedUnarchiver)? unarchiverDidFinish_,
bool $keepIsolateAlive = true,
}) {
final builder = objc.ObjCProtocolBuilder(
debugName: 'NSKeyedUnarchiverDelegate',
);
NSKeyedUnarchiverDelegate
.unarchiver_cannotDecodeObjectOfClassName_originalClasses_
.implement(
builder,
unarchiver_cannotDecodeObjectOfClassName_originalClasses_,
);
NSKeyedUnarchiverDelegate.unarchiver_didDecodeObject_.implement(
builder,
unarchiver_didDecodeObject_,
);
NSKeyedUnarchiverDelegate.unarchiver_willReplaceObject_withObject_
.implementAsBlocking(builder, unarchiver_willReplaceObject_withObject_);
NSKeyedUnarchiverDelegate.unarchiverWillFinish_.implementAsBlocking(
builder,
unarchiverWillFinish_,
);
NSKeyedUnarchiverDelegate.unarchiverDidFinish_.implementAsBlocking(
builder,
unarchiverDidFinish_,
);
builder.addProtocol($protocol);
return NSKeyedUnarchiverDelegate.castFrom(
builder.build(keepIsolateAlive: $keepIsolateAlive),
);
}