1. Swift / Говнокод #22337

    +4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    self.output?.didFinishToLogin(response!)
                        
    let when = DispatchTime.now() + 0.5
    DispatchQueue.main.asyncAfter(deadline: when) {
        self.proceedWithSuccessLogin(response: response!)
    }

    Ждем пока в другом потоке что-то инициализируется, иначе ничего работать не будет. На вопрос автору, откуда взялось полсекунды, был ответ, что этого даже много - там мол все за микросекунды происходит.

    maxp, 16 Февраля 2017

    Комментарии (2)
  2. Swift / Говнокод #21506

    +6

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    В данном случае наговнокодили создатели свифта.
    
    В Си был оператор for
    for (var i = subviews.count - 2; i >= 0; i -= 1) 
    
    Но в Swift 3 его выпилили и вместо него изобрели богомерзкий stride:
    
    for i in (subviews.count - 2).stride(through: 0, by: -1) 
    
    through - до какого значения должен дойти цикл, включительно. Если вместо него написать to, то будет не включительно. Интуитивно понятно, не так ли? (сарказм). 
    Ну и до кучи, в случае со stride нужно больше печатать. 
    
    Я уже молчу, что ++ и -- посчитали небезопасными и выпилили. Наверно, потому, что некоторые дауны путаются с префиксной и постфиксной версией. теперь надо писать += 1 и -= 1. Очень наглядно, по сравнению с ++ и --

    gorsash, 20 Октября 2016

    Комментарии (26)
  3. Swift / Говнокод #20854

    +320

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
            
            let rootViewController = LAMainViewController(nibName: nil, bundle: nil)
            let navigationController = LANavigationController()
            
            let gradientLayer = CAGradientLayer()
            
            gradientLayer.colors = [UIColor.blackColor().CGColor, UIColor(hexString: "330033", alpha: 1)!.CGColor]
            gradientLayer.locations = [0, 1]
            gradientLayer.frame = window!.frame
    
            navigationController.viewControllers = [rootViewController]
            
            window!.rootViewController = navigationController
            window!.makeKeyAndVisible()
            window!.layer.insertSublayer(gradientLayer, atIndex: 0)
            
            return true
        }

    давайте слой зафигачим на окно

    grampe, 18 Августа 2016

    Комментарии (14)