Описание тега unowned-references

2 ответа

Имеет ли ARC счет для неподтвержденной ссылки?

Правда ли, что ARC ведет подсчет неиспользованных ссылок на объект? Итак, если счетчик строгих ссылок объекта достигает 0, а число ссылок на этот объект, не являющееся владельцем,> 0, объект деинициализируется, но не выделяется? И только когда счетч…
2 ответа

Почему я не могу дать неизвестной константе начальное значение?

class Example {} unowned let first = Example() Это приводит к ошибке: Attempted to read an unowned reference but object 0x60c000005f20 was already deallocated Я пытаюсь понять, какое ключевое слово unowned делает.
1 ответ

Слабый или Неизвестный или Нет

У меня есть класс ViewController, как показано ниже: class ViewController { var viewModel = ViewModel() viewDidLoad() { self.viewModel.showAlert = { [weak self] in self?.alert() } } func alert() { // alert logic } } Вот класс ViewModel class ViewMod…
1 ответ

В Свифте, непризнанная и слабая ссылка

Если у вас есть собака со слабой ссылкой на кость, это означает, что собака является "владельцем" ссылки в этой ситуации, и она использует кость, но кость может исчезнуть, и собака все еще может функционировать (потому что ссылка кость необязательна…
1 ответ

Путаница в том, куда следует поместить [непризнанное "я"

У меня есть сохраненный цикл, поэтому deinit моего viewcontroller не будет вызываться, и я пытаюсь решить эту проблему с моим добавлением [unowned self], но я не слишком уверен, куда поместить unowned в моих случаях: Случай 1 class YADetailiViewCont…
11 фев '18 в 21:53
2 ответа

Swift - самоопределение списка захвата

После прочтения некоторых статей и руководства для разработчиков по Apple, я все еще не уверен насчет Capture List в завершении. Что означает "захват", как это работает за сценой с точки зрения непризнанного себя и слабого себя? как замыкание исполь…
2 ответа

Добавьте [unowned self] к аргументу закрытия Swift

У меня есть функция с обработчиком завершения, возвращающим один или несколько параметров. В клиенте при выполнении обработчика завершения я хотел бы иметь unowned ссылка на self, а также доступ к параметру передан. Вот пример игровой площадки, иллю…
1 ответ

Когда оба свойства никогда не могут быть равны нулю, какая разница между несобственными и распределенными ресурсами?

Для следующего кода из руководства по быстрому программированию с добавленными мной деинициализаторами итоговая распечатка отладки будет одинаковой независимо от того, используется ключевое слово unowned или нет. В быстром руководстве по программиро…
2 ответа

Нужно ли перехватывать списки внутренних замыканий для обозначения себя как слабого или неизвестного?

Если у меня есть замыкание передано в функцию, как это: someFunctionWithTrailingClosure { [weak self] in anotherFunctionWithTrailingClosure { [weak self] in self?.doSomething() } } Если я объявлю себя как [weak self] в someFunctionWithTrailingClosur…
0 ответов

Список захвата в закрытии: почему "слабый"?

Я прочитал эту статью о реализации MVVM, Это демонстрирует приложение master-detail, где есть первый viewController обрабатывая представление таблицы и который также содержит viewModel, такие viewModel звонки в службу поддельной службы, чтобы некото…
1 ответ

Swift. unowned может применяться только к классу и типу протокола, привязанного к классу. слабый работает отлично

Пожалуйста, прочитайте вопрос до конца, так как он кажется дубликатом многих похожих других, но это не так. Большинство других вопросов используют замыкания с let Ключевое слово для захвата слабого или неизвестного себя перед объектом init. Я не буд…
29 авг '17 в 13:54
1 ответ

Swift - @escaping и захватить уточнение списка

Я пытался копаться в этом предмете столько, сколько мог, но все же у меня есть несколько вещей, которые не были решены в моей голове, и я буду благодарен, чтобы получить разъяснения по ним.. поэтому я задал несколько вопросов... Как компилятор знает…
1 ответ

Быстрая утечка неизвестного, когда "принадлежит" представляемому представлению

Я испытываю утечку с неизвестным "я" в условиях, когда, насколько мне известно, утечки не должно быть. Позвольте мне показать пример, он немного надуманный, так что терпите меня, я попытался привести простейшее из возможных случаев. Предположим, у м…
2 ответа

Как Unowned ссылка работает с переменными захвата в Swift

Есть много обучающих программ по ARC. Но я не понимаю четкую работу неизвестных или слабых как то, как переменные, захваченные ссылкой, становятся нулевыми. Apple Document: Определите перехват в замыкании как неподтвержденную ссылку, когда замыкание…
1 ответ

Понимание слабой и непризнанной ссылки в Swift под капотом

Я хочу полностью понять, что происходит внутри слабой и неподтвержденной референции в Swift. Для этого я прочитал MikeAsh и получил несколько вопросов. Что уже известно: когда нет слабой (и, я полагаю, не принадлежащей) ссылки на объект, счетчик сил…
1 ответ

Swift Weak Reference Намного медленнее, чем Strong Reference

Я создаю физический движок на Swift. Внеся несколько недавних дополнений в движок и проведя тесты производительности, я заметил, что производительность резко снизилась. Например, на скриншотах ниже вы можете увидеть, как FPS упал с 60 до 3 FPS (FPS …
0 ответов

Алеаторный сбой в SwiftUI при загрузке изображения из Интернета или кеша

Я пытаюсь загрузить изображения и сохранить их в кеше, поэтому у меня есть класс для управления всей последовательностью. Это так: ImageLoader.swift import SwiftUI import UIKit import Combine class ImageLoaderCache { static let shared = ImageLoaderC…
29 апр '20 в 22:08
2 ответа

Почему ослабление сильной ссылки с помощью локальной переменной не работает?

(Я понимаю, как работает ARC, и в чем разница между и. Вопрос в том, как их использовать и почему это не работает. Я буду использовать в приведенном ниже примере только для простоты.) См. Пример ниже. Обратите внимание на строку 10, которая предназн…
0 ответов

Сбой в swift_unknownObjectUnownedTakeStrong из-за ошибочного использования unowned

Я получил сбой в сети. Обратная трассировка выглядит следующим образом: 0 libsystem_kernel.dylib __pthread_kill + 8 1 libsystem_pthread.dylib pthread_kill + 272 2 libsystem_c.dylib abort + 104 3 libswiftCore.dylib swift_vasprintf(char**, char const*…
1 ответ

Разница между бесхозным var что-то: Что-то! и слабый вар что-то: Что-то! в Свифте

Рассмотрим следующий пример, приведенный ниже: protocol Something: AnyObject { func f() } class A { unowned var something1: Something! weak var something2: Something! func f() { something1.f() something2.f() } } В чем разница между типомsomething1иs…
10 авг '23 в 21:46