Pull to refresh
37
0
Maxim Firsov@FirsofMaxim

Mobile developer, Golang backend developer

Send message
Keepass(ios/android/mac/win) + мастер пароль на файл базы + файл базы в Dropbox (те же платформы), полностью решает все вопросы доступа для меня.
Спасибо, познавательно. Насчет UITableView — было сложно сделать собственный вариант, без хаков transform и иже с ними?
Простите, я рыдаю и ржу как конь одновременно.
А чего не Swift? :)
Это массовое явление к сожалению, https://www.dailydot.com/debug/restart-facebook-app-battery-drain/
Насчет Facebook, я удалил его с моего iPhone5s (сейчас хожу через Хром в телефоне), жрал 35% батарейки, не уверен — относится это к качеству?
Спасибо, тут есть одно из решений для массивных Storyboard — https://habrahabr.ru/post/312766/
Когда кол-во экзаменов в год на предприятии (росатом) перевалило за 4 шт + стали навешивать ответственность за других без компенсации оплаты, ушел во фриланс.
Хрень редьки не слаще :)
Очень душевно описано, спасибо за статьи и ссылки.
Объясните почему indirect для enum использовали?
Все работает без падений, попробуйте.
Если ссылка на очередь нигде не сохраняется, то конечно утечки нет, но все меняется если пробовать вызвать код в main очереди, например (Swift3):

Запустите в Playground этот код:

class A {
    init(){
        print("A init")
    }
    
    deinit {
        print("A deinit")
    }
    
    public func fooBar(){
        print("A.fooBar")
    }
    
    public func fooBarAsync(){
        print("A.fooBarAsync")
        DispatchQueue.main.async {
            self.fooBar()
        }
        
    }
}


func testCase(){
    let a = A()
    a.fooBar()
    a.fooBarAsync()
}


testCase()

##########
A init
A.fooBar
A.fooBarAsync
Ухты! Где deinit растак его?!

Делаем так:
public func fooBarAsync(){
        print("A.fooBarAsync")
        DispatchQueue.main.async { [ unowned self] in 
            self.fooBar()
        }
        
    }

##########
A init
A.fooBar
A.fooBarAsync
A deinit
Оуе детка! Я тебя вижу :)

а вот и утечка если:
1) замыкание
2) внутри self
3) self не указан как weak/unowned
Немного хелпа тут

self связывается как strong ссылка если не указано иное.
В Swift для замыканий ввели типы аргументов — weak/unowned, внутри при доступе к вызываемому контексту требуется написать self, тем самым среда как бы говорит — «ага! self написал — утечку осознал!» (здесь я имею ввиду что если в замыкании используется self без типа аргумента weak/unowned — привет утечка)
Спасибо! Здесь реализован похожий фукнционал на extensions, на мой взгляд это удобнее.
Отдельные сторибоардс — https://habrahabr.ru/post/312766/
Спасибо, подход интересный, я обычно просто веду конспект (вещи которые новые), либо на полях пометки делаю карандашом.

Information

Rating
Does not participate
Location
Снежинск (Челябинская обл.), Челябинская обл., Россия
Date of birth
Registered
Activity

Specialization

Бэкенд разработчик, Разработчик мобильных приложений
Старший
Android SDK
Kotlin
Java
Golang
PostgreSQL
Swift
Разработка под iOS
Разработка под Android