Я делаю игру, чтобы узнать Swift и попытаться сделать код чище и лучше. Я сделал класс Called Utilities
:Класс полезности с массивом
class Utilities: NSObject {
//Red, Green, Blue, Yellow, Purple
public let mColors = ["#DA4167", "#81E979","#2B3A67", "#FFFD82", "#3D315B"]
class func hexStringToUIColor (hex:String) -> UIColor {
var cString:String = hex.trimmingCharacters(in: .whitespacesAndNewlines).uppercased()
if (cString.hasPrefix("#")) {
cString.remove(at: cString.startIndex)
}
if ((cString.characters.count) != 6) {
return UIColor.gray
}
var rgbValue:UInt32 = 0
Scanner(string: cString).scanHexInt32(&rgbValue)
return UIColor(
red: CGFloat((rgbValue & 0xFF0000) >> 16)/255.0,
green: CGFloat((rgbValue & 0x00FF00) >> 8)/255.0,
blue: CGFloat(rgbValue & 0x0000FF)/255.0,
alpha: CGFloat(1.0)
)
}
}
Как я могу использовать mColors в другом классе? У меня есть еще один класс, где я пытаюсь использовать mColors, это линия:
mRingOne.fillColor = Utilities.hexStringToUIColor(hex: mColors[0])
Я получаю эту ошибку:
Use of unresolved identifier 'mColors'
классов Utility почти всегда плохое решение. 'hexStringToUIColor', вероятно, будет лучше, чем расширение' UIColor' – Sulthan
Спасибо, я думаю, что пока буду придерживаться этого класса, так как мне нужно добавить туда больше методов. – swiftnewbie
Это не Java. Как указывали Султан и Хэмиш, Свифт позволяет нам распространять другие народы. Мы используем их, когда это возможно, вместо того, чтобы создавать произвольные классы полезности для всех методов bastard-child, которые не подходят нигде. – Alexander