Описание тега swift-guard

1 ответ

Как определить, из какого блока выходит охранник?

Когда guard не выполняется условие, они выходят из закрытия. Однако, что смущает меня из того, что считается блоком, из которого выходит охранник? Например, если у меня есть следующее: func doThing() { while ... { for ... { if ... { guard ... else {…
18 сен '16 в 21:16
2 ответа

Есть ли сокращение для быстрого возвращения охранника?

Есть ли способ иметь guard автоматически возвращаться без необходимости записывать его каждый раз, например: guard let url = self.webView.url else { return } guard let componentDict = URLComponents(string: url.absoluteString)?.dict else { return } g…
26 фев '18 в 03:51
1 ответ

Ранний возврат из функции, которая имеет тип возврата [String] в Swift 3

У меня есть функция, которая возвращает массив строк, если выполняются некоторые условия. Но я хочу, чтобы в моей функции была функция раннего возврата. Что-то вроде этого: func fetchPerson() -> [String] { guard let appDelegate = UIApplication.sh…
10 мар '17 в 04:56
1 ответ

Условие после привязки переменной в проблеме компиляции Guard Swift

Я использую хороший защитный оператор из Swift 3.0 (в Xcode 8.0) и имею следующую функцию: func parse(suffix s: String) throws -> Instruction { guard let count = Int(s) where count >= 0 else { throw InstructionParsingError(message: s + " shoul…
01 окт '16 в 16:40
2 ответа

Быстрая охрана с собой

Я исполняю слабый сильный танец по-быстрому: dispatch_async(dispatch_get_global_queue(QOS_CLASS_DEFAULT, 0), { [weak self] in guard let `self` = self else { return } self.doSomething(1) }) До этого я использовал strongSelf вместо "я". На сайте я вид…
07 сен '16 в 05:39
1 ответ

Условие Guard провоцирует ошибку компилятора, которая говорит о закрытии

Рассмотрим этот код: class Foo { var a: Int var b: Int init(a: Int, b: String?) throws { self.a = a guard self.a > 0 else { throw "Too little a!" } self.b = self.a } } extension String: Error {} Довольно бессмысленно, но суть в том, что он прекра…
28 мар '17 в 15:58
3 ответа

После того, как guard let url, значение еще нужно развернуть

В одноэлементном классе я пробую следующий код с 3 URL-адресами, хранящимися в словаре: class DownloadManager { static let instance = DownloadManager() let urls = [ "en" : URL(string: "https://wordsbyfarber.com/ws/top"), "de" : URL(string: "https://…
13 июн '21 в 12:49
1 ответ

Инициализатор для условной привязки должен иметь необязательный тип, а не «[Key: Value?]»

Я пытаюсь перевести javascript на быстрый. Это метод javascript: export function serializeProperty( properties: Map<Key, Value | null>, ): Array<[Key, JsonValue | null]> { const data = Array.from(properties.entries()); const processedDat…
02 ноя '21 в 02:51
0 ответов

оператор Guard не вызывается в правильном порядке

в этом случае class ModalManager { static var parentController: UIViewController? static weak var initialController: UIViewController? class func present(_ controller: UIViewController) { guard let parent = parentController else { return } guard ini…
16 фев '23 в 19:26