Connect with us

Программирование

6 советов, как улучшить программирование в Swift

Надеюсь, эта статья поможет вам.

Опубликовано

/

     
     

В этой статье я даю короткие советы по улучшению качества Swift-кода.

1. Попробуйте использовать типы значения (value types).

Типы значений легче, чем классы.

class Person { /// is a data model
let name: String
let nickName: String
}

struct Person {
let name: String
let nickName: String
}

2. Используйте «!» как можно меньше и используйте «!» только в локальном коде.

Это гарантирует, что будет меньше сбоев.

var num: String?
/// …
let num2 = num!

var num: String?
guard let temp = num else {
print(“num is nil”)
return
}
let num2 = temp

3. Используйте детерминированные типы и сократите использование Any/AnyObject.

Неоднозначный тип всегда является источником ошибок.

func doSome(data: Any?) {
guard let string = data as? String else {
return
}
// …
}

func doSome(data: String) {
/// ...
}

4. Используйте детерминированный тип и используйте пользовательский тип для замены словаря.

Ключевое значение Dictionary имеет неопределенность типа.

let dic: [String: Any]
let num = dic["value"] as? Int
dic["name"] = "name"

struct Info {
let num: Int
var name: String?
}
let num = info.num
info.name = "name"

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

Жесткое прописанный код нелегко контролировать, а его изменение всегда будет непонятно.

register(appId: “xxxx”)
join(appId: “xxxx”)
leave(appId: “xxxx”)

static let appId = “xxx”
/// …
register(appId: appId)
join(appId: appId)
leave(appId: appId)

6. Используйте KeyPath вместо жесткого прописывания строки.

В строке легко ошибиться, надежнее проверить компилятором

class SomeClass: NSObject {
@objc dynamic var someProperty: Int
init(someProperty: Int) {
self.someProperty = someProperty
}
}
let object = SomeClass(someProperty: 0)
object.observeValue(forKeyPath: "someProperty", of: nil, change: nil, context: nil)

let object = SomeClass(someProperty: 0)
object.observe(\.someProperty) { object, change in }

Надеюсь, эта статья поможет вам. Кроме того, у вас есть вопросы? Вы можете оставить мне сообщение.

Источник

Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.
Telegram

Популярное

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: