URL.init? (String: String) возвращает 'nil', когда это не должно - PullRequest
1 голос
/ 09 октября 2019

У меня возникла проблема с инициализатором строки Foundation URL структуры. Я выложу некоторый код из реплея ниже:

Welcome to Apple Swift version 5.1 (swiftlang-1100.0.270.13 clang-1100.0.33.7).
Type :help for assistance.
  1> import Foundation
  2> let testString = "https://www.apple.com"
testString: String = "https://www.apple.com"
  3> let testUrl1 = URL(string: testString)
testUrl1: URL? = nil
  4> let testUrl2 = URL(string: "https://www.apple.com")
testUrl2: URL? = nil

Я не могу понять, почему это происходит, если вы посмотрите на источник инициализатора, расположенный по адресу https://github.com/apple/swift-corelibs-foundation/blob/master/Foundation/URL.swift#L495, вы будетесм. это в документации:

/// Initialize with string.
///
/// Returns `nil` if a `URL` cannot be formed with the string (for example, if the string contains characters that are illegal in a URL, or is an empty string).

Насколько я могу судить, проверяемая строка является допустимым URL-адресом, и инициализатор не должен возвращать nil. Я пробовал это на двух разных компьютерах Mac и на недавно установленной виртуальной машине, и получил одинаковый результат на всех них. macOS 10.15, Xcode 11.1. Кто-нибудь знает, что может быть не так?

1 Ответ

2 голосов
/ 09 октября 2019

Казалось бы, проблема REPL и существовала в 11.0, тоже. Но если вы print(testUrl1), вы увидите, что это действительно установлено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...