toObjCObject function

ObjCObject toObjCObject(
  1. Object? dartObject, {
  2. ObjCObject convertOther(
    1. Object
    ) = _defaultObjCConverter,
})

Converts a Dart object to the corresponding Objective C object.

This supports basic types like num and String. It also works on collections, and recursively converts their elements.

If dartObject is not one of the recognized types, convertOther is called. If convertOther is not provided, an error is thrown.

Implementation

ObjCObject toObjCObject(
  Object? dartObject, {
  ObjCObject Function(Object) convertOther = _defaultObjCConverter,
}) => switch (dartObject) {
  null => NSNull.null$(),
  ObjCObject() => dartObject,
  num() => dartObject.toNSNumber(),
  String() => dartObject.toNSString(),
  DateTime() => dartObject.toNSDate(),
  List<Object>() => dartObject.toNSArray(convertOther: convertOther),
  Set<Object>() => dartObject.toNSSet(convertOther: convertOther),
  Map<Object, Object>() => dartObject.toNSDictionary(
    convertOther: convertOther,
  ),
  _ => convertOther(dartObject),
};