Описание тега capture-list
0
ответов
Как я могу найти все замыкания?
Мы полностью забыли захватить self и его свойства при обращении к нему в замыкании. (Примечание: компилятор не предупредил нас.) Теперь наше приложение заполнено сильными ссылочными циклами. Чтобы исправить их, мы должны добавить список захвата к ка…
27 фев '18 в 17:22
2
ответа
Как обновить модель данных с помощью DispatchQueue.main.async/Block/Closures в Swift 3
Я учу Свифта. У меня есть одна проблема. Проблема- у меня есть DataModel с URL-адресом изображения, поэтому первый раз загрузит изображение с URL-адреса и, конечно, второй раз не будет. Поэтому, когда я получаю изображение в своем блоке, я хочу обно…
02 май '17 в 18:49
1
ответ
Сохранение указателя путем продления жизни захвата
Можно ли продлить жизнь unique_ptr захватывая его в лямбду и продлевая жизнь лямбды? Я пытался, но получая синтаксические ошибки с a=move(a) выражение. #include <cstdio> #include <functional> #include <memory> #include <iostream…
18 авг '17 в 05:56
1
ответ
Swift XCTest: проверка правильного освобождения слабых переменных
Недавно я пытался проверить правильность освобождения объекта, который я написал, с помощью модульного теста. Однако я обнаружил, что независимо от того, что я пробовал, объект не будет освобожден до завершения теста. Поэтому я сократил тест до трив…
23 дек '16 в 22:13
2
ответа
Swift - самоопределение списка захвата
После прочтения некоторых статей и руководства для разработчиков по Apple, я все еще не уверен насчет Capture List в завершении. Что означает "захват", как это работает за сценой с точки зрения непризнанного себя и слабого себя? как замыкание исполь…
02 май '18 в 07:22
0
ответов
Сохранение ссылки на объект при создании и сохранении замыкания
У меня есть вопрос о том, как ссылки на объекты обрабатываются в замыканиях в конкретном примере. Код ниже упрощен, чтобы продемонстрировать идею class SomeObject { init(value: Int) { self.value = value } var value: Int { didSet { valueObservers.for…
05 мар '18 в 19:04
1
ответ
Почему захваченная ссылка на объект на неявно развернутую переменную должна быть развернута?
В моем проекте я пытаюсь использовать списки захвата с замыканиями, но я внедрил зависимости, которые неявным образом развернуты, так как я гарантирую, что они будут заполнены внедрением зависимостей. Я обнаружил, что использование списка захвата пр…
18 окт '18 в 12:52
1
ответ
Swift - @escaping и захватить уточнение списка
Я пытался копаться в этом предмете столько, сколько мог, но все же у меня есть несколько вещей, которые не были решены в моей голове, и я буду благодарен, чтобы получить разъяснения по ним.. поэтому я задал несколько вопросов... Как компилятор знает…
01 май '18 в 06:11
0
ответов
GCD сохраняет четкую ссылку на "себя" даже при определении списка захвата
class MyClass { var someProperty = 0 deinit { // never gets called } func doSomething() { DispatchQueue.global().async { [weak self] in Thread.sleep(forTimeInterval: 3600) self?.someProperty = 123 } } } class MyViewController: UIViewController { var…
21 апр '17 в 09:58
1
ответ
Есть ли обходной путь, чтобы указать внутренний список захвата функции и их модификатор в swift
Я искал в быстрой спецификации список захвата на внутреннем функционале, но без удачи, есть ли способ разорвать этот вид ссылочного цикла? class Hello { var name = "name" var fn: (()->())? = nil } func foo() -> Hello? { var bar: Hello? = Hello…
28 фев '19 в 11:16
1
ответ
Как удалить сильный контрольный цикл из замыкания из метода?
Здесь у меня есть несколько примеров закрытия сильных референтных циклов. Если я назначу замыкание на сохраненное свойство, я могу использовать список захвата замыкания, чтобы сделать захваченную ссылку неизвестной / слабой. Но если я назначу метод …
06 окт '16 в 14:44
1
ответ
Swift: поддержание атомарности в блочном исполнении с использованием слабой самости
Я часто вижу код, который использует слабое Я, как показано ниже: api.call() { [weak self] (result, error) in if (error == nil) { setGlobalState() self?.doSomething() } else { setSomeErrorState() self?.doSomethingElse() } } Но мне кажется, что если …
16 авг '19 в 23:22
4
ответа
При перемещении unique_ptr в лямбду, почему нельзя вызвать сброс?
При переезде std::unique_ptr в лямбду не возможно позвонить reset() на это, потому что это кажется постоянным: error C2662: void std::unique_ptr<int,std::default_delete<_Ty>>::reset(int *) noexcept': cannot convert 'this' pointer from 'c…
04 июл '19 в 18:37
0
ответов
Функция в списке захвата: ошибка "метка постороннего аргумента"
func customPrint(number: Int, via printingFunction: @escaping (Int) -> Void) { printingFunction(number) } class Temp { func tempPrintingFunction(number i: Int) { print(i) } func print5() { customPrint(number: 5) { [self] number in tempPrintingFu…
11 янв '22 в 08:50
1
ответ
Синтаксис списка закрытия листа SwiftUI
Как добавить список захвата в закрытие SwiftUI .sheet(content:)? У меня есть лист в SwiftUI и в содержимом: закрытие я проверяю значение необязательного, чтобы определить, какое представление показывать. При первом запуске значение всегда равно нулю…
03 фев '22 в 20:39
0
ответов
Swift: список захвата
var array = [() -> ()]() var count = 0 var index = 0 while index < 5 { array.append { print("count: \(count)") print("index: \(index)") } count += 1 index += 1 } array[0]() array[4]() Вывод: количество: 5 индекс: 5 количество: 5 индекс: 5 Тот…
25 мар '22 в 17:35