Что такое C# эквивалент структуры URL Swift в Xamarin. iOS? - PullRequest
2 голосов
/ 29 февраля 2020

Я использую Xamarin. iOS и работаю с NSAttributeString.

Мне нужно знать, содержит ли атрибут ссылки URL-адрес. Я нашел для этого код Swift: if let url = value as? URL, но я не знаю, какой класс C# представляет «URL».

Насколько я понимаю, URL и NSUrl отличаются, поэтому я не могу использовать последний. Есть ли шаблон именования для этих структур Swift?

Ответы [ 2 ]

3 голосов
/ 29 февраля 2020

URL - это просто «наложение» NSURL, и поскольку Xamarin. iOS напрямую использует API-интерфейсы Objective- C, вам следует просто использовать ссылочный тип NSURL напрямую.

  • URL-адрес на основе Swift:

Объект, представляющий местоположение ресурса, который соединяется с URL; используйте NSURL, когда вам нужна ссылочная семантика или другое поведение, определяемое Фондом c.

  • NSURL:

Перекрытие Swift для платформы Foundation предоставляет структуру URL, которая связывает класс NSURL. "

re: https://developer.apple.com/documentation/foundation/nsurl

Тип значения URL предлагает те же функциональные возможности как ссылочный тип NSURL, и эти два могут использоваться взаимозаменяемо в коде Swift, который взаимодействует с API-интерфейсами Objective- C. Это поведение аналогично тому, как Swift связывает стандартные строки, цифры c и типы коллекций с соответствующими им базовыми классами . "

0 голосов
/ 29 февраля 2020

Используйте Uri class и попробуйте этот подход:

bool isUriCorrect = Uri.IsWellFormedUriString("https://www.stackoverflow.com", UriKind.Absolute);

Рекомендуемый метод IsWellFormedUriString() указывает, является ли строка правильно сформированной при попытке создать URI со строкой, и обеспечивает что строка не требует дальнейшего экранирования.

...