Ябло (Свежее) / Говнокод #23282 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
if let attrs = profile?.attrs {
    let json = NSKeyedUnarchiver.unarchiveObject(with: attrs as Data) as? [String:AnyObject]
    textField.text = String(format: "%@", (json?["number"] as? String)!)
}

Кто пишет на Swift – разделит всю боль поддержки такого кода.

pavelsmelovsky pavelsmelovsky, (Updated )

Комментарии (7, +7)

Ябло (Свежее) / Говнокод #22898 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
func sumOf(_ numbers: Int...) -> Int {
    var sum = 0
    for number in numbers {
        sum += number
    }
    return sum
}

func average(numbers: Int...) -> Double {
    var sum = sumOf(numbers)
    
    return Double(sum) / Double(numbers.count)
}

// ERROR at line 10, col 21: cannot convert value of type '[Int]' to expected argument type 'Int'
//    var sum = sumOf(numbers)

Смысл жёстко типизированных Variadic arguments ускользает от меня.

Предлагается как синтаксический сахар на замену [Type] (экономия на скобках?), не работает в неожиданных местах без объявления войны.
Зато Эппл убрала в третьем Свифте раскрытие кортежа в качестве аргументов функций: https://github.com/apple/swift-evolution/blob/master/proposals/0029-remove-implicit-tuple-splat.md

Здесь играем, здесь не играем, здесь рыбу заворачивали

negr negr, (Updated )

Комментарии (7, +7)

Ябло (Свежее) / Говнокод #22337 Ссылка на оригинал

0

  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 maxp, (Updated )

Комментарии (2, +2)

Ябло (Свежее) / Говнокод #21506 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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 gorsash, (Updated )

Комментарии (26, +26)

Ябло (Свежее) / Говнокод #20982 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
______ 
                                  |______|
 _____ _    _____  __   __      _     ___ 
|_   _| |  |_   _| \ \ / /     | |   / / |
  | | | |__  | |    \ V / _   _| |  / /| |
  | | | '_ \ | |    /   \| | | | | / / | |
  | | | |_) || |_  / /^\ \ |_| | |/ /  | |
  \_/ |_.__/\___/  \/   \/\__, | /_/   | |
                           __/ | |     | |
                          |___/|_|     |_|

                                   ______ 
                                  |______|
 _____ _    _____  __   __      _     ___ 
|_   _| |  |_   _| \ \ / /     | |   / / |
  | | | |__  | |    \ V / _   _| |  / /| |
  | | | '_ \ | |    /   \| | | | | / / | |
  | | | |_) || |_  / /^\ \ |_| | |/ /  | |
  \_/ |_.__/\___/  \/   \/\__, | /_/   | |
                           __/ | |     | |
                          |___/|_|     |_|

Anal_teacher Anal_teacher, (Updated )

Комментарии (10, +10)

Ябло (Свежее) / Говнокод #20854 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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 grampe, (Updated )

Комментарии (15, +15)

Ябло (Свежее) / Говнокод #20191 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
var orderStatus: OrderStatus {
        
        switch status {
            
        case "исполнено":
            return .Finished
        case "Закрыт":
            return .Finished
        case "просрочено":
            return .DeadlinePassed
        default:
            return .InProgress
            if control.deadline.timeIntervalSinceNow < 0.0 {
                return .DeadlinePassed
            } else {
                return .InProgress
            }
        }
    }

Потрачено

Johniie Johniie, (Updated )

Комментарии (2, +2)

Ябло (Свежее) / Говнокод #20096 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
if section == 0 {
            return "Item(s) in your cart"
        } else if section == 1 {
            return String("Total tax")
        } else if section == 2{
            return String("Shipped to")
        } else if section == 3 {
            return String("Please select a payment method")
        }
        return nil

Ладно, допустим человек не знает, что такое switch или хранение данных в массиве.
Но зачем явно вызывать конструктор строки? Что, кто-то не поймёт, что это строка?

gorsash gorsash, (Updated )

Комментарии (19, +19)

Ябло (Свежее) / Говнокод #19948 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
import Foundation

class UserAddress {
    
    private var ID = Int32()
    private var stateID = Int32()
    private var eavObjectID = Int32()
    private var firstName = String()
    private var lastName = String()
    private var companyName = String()
    private var address = String()
    private var address2 = String()
    private var city = String()
    private var stateName = String()
    private var postalCode = String()
    private var countryID = String()
    private var phone = String()
    
    func setID(ID: Int32) { self.ID = ID }
    func setStateID(stateID: Int32) { self.stateID = stateID }
    func setEavObject(eavObjectID: Int32) { self.eavObjectID = eavObjectID }
    func setFirstName(firstName: String) { self.firstName = firstName }
    func setLastName(lastName: String) { self.lastName = lastName }
    func setCompanyName(companyName: String) { self.companyName = companyName }
    func setAddress(address: String) { self.address = address }
    func setAddressTwo(address2: String) { self.address2 = address2 }
    func setCity(city: String) { self.city = city }
    func setStateName(stateName: String) { self.stateName = stateName }
    func setPostalCode(postalCode: String) { self.postalCode = postalCode }
    func setCountryID(countryID: String) { self.countryID = countryID }
    func setPhone(phone: String) { self.phone = phone }
    
    
    func getID() -> Int32 { return self.ID }
    func getStateID() -> Int32 { return self.stateID }
    func getEavObject() -> Int32 { return self.eavObjectID }
    func getFirstName() -> String { return self.firstName }
    func getLastName() -> String { return self.lastName }
    func getCompanyName() -> String { return self.companyName }
    func getAddres() -> String { return self.address }
    func getAddressTwo() -> String { return self.address2 }
    func getCity() -> String { return self.city }
    func getStateName() -> String { return self.stateName }
    func getPostalCode() -> String { return self.postalCode }
    func getCountryID() -> String { return self.countryID }
    func getPhone() -> String { return self.phone }

}

Java головного мозга. Писал android девелопер

gorsash gorsash, (Updated )

Комментарии (19, +19)