initByResolvingBookmarkData method

NSURL? initByResolvingBookmarkData(
  1. NSData bookmarkData, {
  2. required int options,
  3. NSURL? relativeToURL,
  4. required Pointer<Bool> bookmarkDataIsStale,
})

initByResolvingBookmarkData:options:relativeToURL:bookmarkDataIsStale:error:

Implementation

NSURL? initByResolvingBookmarkData(
  NSData bookmarkData, {
  required int options,
  NSURL? relativeToURL,
  required ffi.Pointer<ffi.Bool> bookmarkDataIsStale,
}) {
  objc.checkOsVersionInternal(
    'NSURL.initByResolvingBookmarkData:options:relativeToURL:bookmarkDataIsStale: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_1ceswyu(
      object$.ref.retainAndReturnPointer(),
      _sel_initByResolvingBookmarkData_options_relativeToURL_bookmarkDataIsStale_error_,
      bookmarkData.ref.pointer,
      options,
      relativeToURL?.ref.pointer ?? ffi.nullptr,
      bookmarkDataIsStale,
      $err,
    );
    objc.NSErrorException.checkErrorPointer($err.value);
    return $ret.address == 0
        ? null
        : NSURL.fromPointer($ret, retain: false, release: true);
  } finally {
    pkg_ffi.calloc.free($err);
  }
}