Paks
в статье пишут, что неверно)
Paks
ничего не произойдет
Paks
ответ:
Ранлуп не взведен, как говорится. А еще будет небольшая утечка памяти, но это уже для гурманов.
Paks
а теперь обьясните, что это означает)
Paks
что значит ранлуп не возведен?)
Bulat
не
Bulat
когда делаешь scheduledTimer
Bulat
с ранлупом все ок
Bulat
должно быть
Paks
проверил в коде)
Paks
и правда не тикает)
Paks
походу
Anonymous
с фреймворками этими вообще деградировал и не юзаю диспатч_вставьтеслово
Stanislav
Oleksii
Paks
пишут решение такое:
Если надо сделать таймер в фоне, то стоит выбирать поток с бегущим ранлупом. Либо воспользоваться уже готовым решением для GCD.
Paks
http://stackoverflow.com/questions/8304702/how-do-i-create-a-nstimer-on-a-background-thread/8403743#8403743
Stanislav
что значит ранлуп не возведен?)
У тебя есть новый Thread, но ему нечего делать. Если ты создаешь в нем RunLoop, это не дает Thread’у завершиться. То есть этот пример хорош в том случае, если бы в блоке был тяжелый код с коллбеком - если я все правильно понял, такое бы отлично отработало (и Thread бы спокойно помер)
Paks
Нашел очередной сборник вопросов для собеседований) прикольные вопросы и подход, если кто собеседует - отличная статья на заметку
https://m.habrahabr.ru/post/322252/
Paks
Вопрос оттуда)
Stanislav
В мейне ран луп явно есть, в бекграунд треде, видимо, тоже все сделано для того, чтобы она не дохла
Stanislav
Вообще мне такой пример когда-то попался, только на Objective, было забавно
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
DispatchQueue.main.sync {
self.hello()
}
return true
}
func hello() {
print("hello")
}
Stanislav
Stanislav
Это тоже так себе ответ (:
Paks
Ога) такую штуку похожую делал на одном из проектов
Paks
Приложение было написано на половину как конструктор
Paks
А все интерфейсы рисовались и настраивались на сервере) а как новую логику добавлять - хз)
Stanislav
И я делал, зависит от задачи. Можно тупо вебвью. А можно написать свой огромный костыль с формированием интерфейса с JSON на сервере. При желании можно описать и кнопки и поля и что с ними делать (ну, базовый уровень)
Paks
Разве что засылать текстом функции и их преообразовываит в код
Paks
Хз) но это хак как приватные апи мона юзать)
Paks
В обход апстора) но под это все предварительно все равно заготовки бы ь должны)
Stanislav
Можно интерфейс формировать из JSON, а с сервера получать логику на JS и делать evaluate. Короче пиздец можно костылять.
Stanislav
Stanislav
«На мой взгляд, самый оптимальный вариант — это попросить дизайнера переделать. »
Stanislav
Stanislav
Переделать то, что в IB, в IB целиком делается за минут 10. Окей.
Clyde
Меня зовут Павел и я начинающий программист. Я пока учусь и еще не участвую в каком то проекте. Трудно назвать меня специалистом, но в целом objective-c я понимаю. Возможно я могу кому то помочь, подсказать. Надеюсь что вы мне сможете что то подсказать. Узнал про чат в подборке от http://netology.ru/
Stanislav
Stanislav
Сделал по приколу и несколько вьюх в скролле ¯\_(ツ)_/¯
Но конечно варианты попросить дизайнера переделать или отсортировать слова по длине тоже в силе (:
А если серьезно - статья как раз этим не очень. Не вопросами, а ответами на них, они неполные, к сожалению.
Stanislav
Синглтон
Конструктор
Stanislav
Аа. У тебя о другом вопрос
Stanislav
Прямо в ините своего объекта подписывайся
Bulat
да, конечно
Oleksii
а static/class property могут быть lazy?
Bulat
пишешь дальше
init() {..}
Bulat
подписываешь там все какие надо нотификейшены
Stanislav
//: Playground - noun: a place where people can play
import UIKit
class Network {
static let shared = Network();
init() {
NotificationCenter.default.addObserver(self, selector: #selector(messageReceived), name: NSNotification.Name(rawValue: "name"), object: nil)
}
@objc func messageReceived()
{
print("message ok")
}
}
Network.shared.messageReceived()
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "name"), object: nil);
Stanislav
Прям в плейграунд можно кинуть
Stanislav
Stanislav
Вообще в iOS9, кажется, NotificationCenter стал хранить weak ссылки
Stanislav
То есть если ты не отписался, приложение не упадет
Bulat
если таргетишь iOS 9, то не обязательно
Stanislav
В связи с этим вопрос, кстати. Вот в iOS9 ссылки в NotofocationCenter стали weak. А как вообще он до этого хранил ссылки на объекты. Если до 8ки, получается, были стронг, то как они могли дохнуть? Ведь referenceCount как минимум +1 из-за самого центра? Или он как-то по-другому хранил их раньше, так что retain для подписанных объектов не происходил, он мог сдохнуть, но указатель в самом центре не становился nil, и мы получали креш?
Stanislav
Кстати, насколько тут проскакивало, это по идее еще и threadsafe из коробки
Stanislav
А, ну в общем есть такой тип указателя, да? Что ты и не ретейнишь, как в случае strong, но и nil при сдыхании он не станет, как weak?
Dmitriy
Ребят, посоветуйте, какой айфон сейчас лучше всего купить для тестирования приложений? Стоит ориентироваться на 5 или можно рассматривать 6 как минимальный?
Dmitriy
В плане производительности. Чтобы потестировать игру.. не тормозит, значит оке, в продакшн )
Ilkhom
ориентируйся на 7 уже
Anonymous
5с
Max
+ 5ка последняя с 32 битной архитектурой. Она не стоит уже внимания и сил :(
Bulat
У 6 Plus самый низкий фпс вроде
Dmitriy
Bulat
Ибо рeндeрит в 3х, а потом даунскeйлит в 1080
Bulat
И 1гб озу на это всe
Bulat
Учитывая что шeстeрка нe дала мощного прироста в производительности
Bulat
Возможно это дажe мeдлeннee 5s
Bulat
Но eсли всe таки быстрee
Dmitriy
А сколько памяти выделяется под одно приложение?
Bulat
То нe сильно. А актуальность устройства чуть дольшe будeт
Bulat
То eсть в планe покупки вродe дажe выгоднee
Max
@khabiroff дело говорит
Но я бы взял и 5s и 6 plus
Так уж точно не прогадаешь
Bulat
Но это прeдположeниe только
Max
Благо бу сейчас отдают за копейки
Dmitriy
Ясненько, спасибо всем.
Max
Не за что ;)
Удачи!
Bulat
это что