Вы отмечаете свой UIViews или сохраняете их как свойства?

Я нашел ответ благодаря данному предложению. Это в методе .find. Просто нужно передать аргументы в правильном порядке, чтобы они действовали как и где выберите:

cur = db['WDIData'].find({'Indicator Name': ind}, {'_id': 0, 'Country Name': 1, 'Country Code': 1, year: 1})
15
задан iDeveloper 5 April 2016 в 06:04
поделиться

5 ответов

Нет никакой памяти, которая будет сохранена, не используя свойства - свойство только генерирует маленький бит кода, который относится к переменной экземпляра, указывающей на Ваше представление, которое будет сохраненным, если Вы указываете на него или нет.

Используя viewWithTag всегда было бы более дорогим и медленнее, потому что тот вызов должен пройти иерархию представления, спросив каждое представление, каково значение тега.

я всегда использую переменные экземпляра IBOutlet и добавляю теги к средствам управления иногда, где я не должен делать ничего кроме, говорят, какое конкретное управление, названное методом делегата, который мог быть активирован несколькими различными средствами управления. Это немного менее эффективно, но код легче поддержать в этом случае.

10
ответ дан 1 December 2019 в 02:02
поделиться

Я использую свойства. Влияние памяти нигде не близко быть проблемой для размышления о. viewWithTag: может также записать немного ЦП для использования, но главной причиной, я делаю это, является более чистый код, который заканчивается. Это намного более хорошо к доступу self.leftSideView, чем [self.view viewWithTag:LEFTSIDEVIEW], и Вы не должны справляться с перечислением для знания то, что продолжается.

я расцениваю теги, как являющиеся полезным для отладки, но не ежедневного использования.

6
ответ дан 1 December 2019 в 02:02
поделиться

Я всегда связываю их с Интерфейсным разработчиком к IBOutlet ivars

3
ответ дан 1 December 2019 в 02:02
поделиться

Просто повторяю то, что сказал Кендалл, viewWithTag: стоит дорого. У меня был цикл из нескольких сотен вызовов, и выполнение цикла заняло бы 2+ секунды. Переключился на массив, и теперь я даже не замечаю, как работает цикл.

3
ответ дан 1 December 2019 в 02:02
поделиться

Я понимаю, что это может иметь отношение к вопросу OP, но это может быть полезно для кормления Google.

Одно из применений, которое я нашел для тегов UIView, на самом деле состоит не в том, чтобы найти представление по тегу в иерархии представлений (которое, как указано выше, может стать довольно дорогим), а скорее для различения двух или более представлений друг от друга делегатом, которому поручено обрабатывать несколько из них, чтобы избежать множества назначений свойств (что, безусловно, может сделать код UIViewController более тесно связанным).

Классическим случаем этого является UITableViewController, чей делегат UITableViewDataSource был вынесен в отдельный класс. Скажем, UITableViewController позже захочет добавить панель поиска и хочет использовать тот же UITableViewDataSource. Это означает, что будут вызываться методы UITableViewDataSource, и источник данных должен будет часто отличать реальный UITableView от searchResultsTableView в UISearchDisplayController. Если UITableViewController установил тег для каждого из представлений таблицы, то источник данных мог бы легко разветвляться по поведению на основе значения тега и без необходимости ссылок на представления таблиц или (что еще хуже) на контроллер отображения поиска.

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

6
ответ дан 1 December 2019 в 02:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: