//public static NSUrl LastUrl; public static (NSUrl NewUrl, NSData Bookmark) GetBookmark(this NSUrl url) { var bookmarksObj = NSUserDefaults.StandardUserDefaults.ValueForKey(new NSString("Bookmarks")) as NSDictionary; var nsBookmarks = bookmarksObj?.MutableCopy() as NSMutableDictionary ?? new NSMutableDictionary(); //var bookmarks = new List<NSData>(); foreach (var key in nsBookmarks.Keys) //for (uint i = 0; i < nsBookmarks.Count; i++) // bookmarks.Add(nsBookmarks.GetItem<NSData>(i)); //foreach (var bookmark in bookmarks) { var bookmark = nsBookmarks[key] as NSData; var bookmarkUrl = NSUrl.FromBookmarkData(bookmark, NSUrlBookmarkResolutionOptions.WithoutUI | NSUrlBookmarkResolutionOptions.WithSecurityScope, null, out bool isStale, out NSError error1 ); if (bookmarkUrl != null && error1 == null) { if (bookmarkUrl.Path.TrimEnd('/') == url.Path.TrimEnd('/')) { if (isStale) { if (url.CreateBookmark() is NSData freshBookmark) { //LastUrl = bookmarkUrl; return(bookmarkUrl, freshBookmark); } return(null, null); } //LastUrl = bookmarkUrl; return(bookmarkUrl, bookmark); } } else { if (error1 != null) { Console.WriteLine("Bookmark error: Bookmark for url [" + url + "] gave error [" + error1.Description + "] when trying to convert to URL."); } //nsBookmarks.RemoveObject((nint)nsBookmarks.IndexOf(bookmark)); nsBookmarks.Remove(key); NSUserDefaults.StandardUserDefaults.SetValueForKey(nsBookmarks, new NSString("Bookmarks")); } } return(null, null); }