implementAsBlocking static method
CKRecordKeyValueSetting
implementAsBlocking({
- required CKRecordValue? objectForKey_(),
- required void setObject_forKey_(),
- required CKRecordValue? objectForKeyedSubscript_(),
- required void setObject_forKeyedSubscript_(),
- required NSArray allKeys(),
- required NSArray changedKeys(),
- bool $keepIsolateAlive = true,
Builds an object that implements the CKRecordKeyValueSetting 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 CKRecordKeyValueSetting implementAsBlocking({
required CKRecordValue? Function(DartCKRecordFieldKey) objectForKey_,
required void Function(CKRecordValue?, DartCKRecordFieldKey)
setObject_forKey_,
required CKRecordValue? Function(DartCKRecordFieldKey)
objectForKeyedSubscript_,
required void Function(CKRecordValue?, DartCKRecordFieldKey)
setObject_forKeyedSubscript_,
required objc.NSArray Function() allKeys,
required objc.NSArray Function() changedKeys,
bool $keepIsolateAlive = true,
}) {
final builder = objc.ObjCProtocolBuilder(
debugName: 'CKRecordKeyValueSetting',
);
CKRecordKeyValueSetting.objectForKey_.implement(builder, objectForKey_);
CKRecordKeyValueSetting.setObject_forKey_.implementAsBlocking(
builder,
setObject_forKey_,
);
CKRecordKeyValueSetting.objectForKeyedSubscript_.implement(
builder,
objectForKeyedSubscript_,
);
CKRecordKeyValueSetting.setObject_forKeyedSubscript_.implementAsBlocking(
builder,
setObject_forKeyedSubscript_,
);
CKRecordKeyValueSetting.allKeys.implement(builder, allKeys);
CKRecordKeyValueSetting.changedKeys.implement(builder, changedKeys);
builder.addProtocol($protocol);
return CKRecordKeyValueSetting.castFrom(
builder.build(keepIsolateAlive: $keepIsolateAlive),
);
}