Как использовать delete (_ :) в Swift4, чтобы удалить выбранный контент из вашего интерфейса? - PullRequest
0 голосов
/ 25 мая 2019

Я создал представление программно

let v = UIView.init()
v.frame = CGRect(x:10, y:40, width:100, height:100)
v.backgroundcolor = .blue
view.addsubview(v)

, чтобы удалить это представление. Я использовал два разных подхода

1:    v.ishidden = true
2:    v.removefromsuperview()

these two approaches don't completely erase v.frame & v.backgroundcolor values from memory just object disappears

, затем я использую delete (_:)

v.delete(self)

выдает ошибку

Thread 1: signal SIGABRT

Я думаю, что это проблема синтаксиса.как использовать я должен использовать удалить (_:)

optional func delete(_ sender: Any?)

1 Ответ

0 голосов
/ 25 мая 2019

Вы не должны очищать память.Автоматический подсчет ссылок позаботится об этом.Когда v выходит из области видимости, и никакой другой объект не имеет ссылки на него, ARC автоматически освобождает его из памяти.

Описанный вами метод delete не имеет ничего общего с управлением памятью.Вы не должны использовать его в этом случае.

Так что в вашем случае просто используйте v.removeFromSuperview(), и все будет в порядке.


Дополнительно: если v является свойством(переменная в экземпляре класса), и вы действительно хотите удалить его из памяти, вы можете присвоить ему nil.

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