URLForDirectory method

NSURL? URLForDirectory(
  1. NSSearchPathDirectory directory, {
  2. required int inDomain,
  3. NSURL? appropriateForURL,
  4. required bool create,
})

URLForDirectory:inDomain:appropriateForURL:create:error:

Implementation

objc.NSURL? URLForDirectory(
  NSSearchPathDirectory directory, {
  required int inDomain,
  objc.NSURL? appropriateForURL,
  required bool create,
}) {
  objc.checkOsVersionInternal(
    'NSFileManager.URLForDirectory:inDomain:appropriateForURL:create:error:',
    iOS: (false, (4, 0, 0)),
    macOS: (false, (10, 6, 0)),
  );
  final $err = pkg_ffi.calloc<ffi.Pointer<objc.ObjCObjectImpl>>();
  try {
    final $ret = _objc_msgSend_1crui9(
      object$.ref.pointer,
      _sel_URLForDirectory_inDomain_appropriateForURL_create_error_,
      directory.value,
      inDomain,
      appropriateForURL?.ref.pointer ?? ffi.nullptr,
      create,
      $err,
    );
    objc.NSErrorException.checkErrorPointer($err.value);
    return $ret.address == 0
        ? null
        : objc.NSURL.fromPointer($ret, retain: true, release: true);
  } finally {
    pkg_ffi.calloc.free($err);
  }
}