swift 开发点滴总结

1、请求数据后台可能返回Int、CGFoat、String类型的结果当不确定的时候可能做一些的判断然后保留两位小数点显示出来如下:

///统一数据类型输出保留两位小数点输出
func unifiedDataTypeOutput(resultParameter : NSDictionary) -> String
{
    let weightString =  resultParameter["Key"]
    if let wightInt = weightString as? Int
    {
        let priceString = "\(wightInt)"
        return String.init(format: "%.0f",priceString.toFloat() ?? "")
    }
    else if let wightStr = weightString as? String
    {
        return String.init(format: "%.0f",wightStr.toFloat() ?? "")
    }
    else if let wightFloat = weightString as? CGFloat
    {
        let priceString = "\(wightFloat)"
        return String.init(format: "%.0f",priceString.toFloat() ?? "")
    }
    return ""
}

我这里统一转换成String类型然后保留两位小数点用label显示出来。

2、获取一部分字段在文章中的显示不同的颜色,字体大小:

(1)、获取部分字段在文章中的区域:
/// 子字符串在父字符串的位置
/// - Parameters:
///   - sonString: 一部分要编辑的字段
///   - parentString: 整个文章的内容
/// - Returns: 返回一部分字段区域
func getRangeInParentFrom(sonString: String,parentString: String) -> NSRange
{
    if sonString.count > 0 && parentString.count > 0
    {
        let range = parentString.range(of: sonString)!
        let nsrange = NSRange(range, in: parentString) // Range to NSRange
        return nsrange
    }
    return NSRange()
}
(2)、编辑部分区域的字体
let parantString = "一部分要编辑的字段"
let sonString = "整个文章的内容"
let mutiText = NSMutableAttributedString.init(string: parantString)
let sonRange = sonString.getRangeInParentFrom(sonString: sonString)
//这里就是设置字体
mutiText.setAttributes([NSAttributedString.Key.font : UIFont.boldSystemFont(ofSize: 18)], range:sonRange)
let label = UILabel.init(x: 0, y: 0, w: 200, h: 200)
label.attributedText = mutiText

3、Swift Dictionary获取字典的key数组,vaule数组

在OC中字典直接调用keys就会返回数组,但是在swift中是要强制转换如下:

let dictionary : [String : Any] = ["key1" : "value1","key2" : "vaule2"]
let keysArray : Array = [String](dictionary.keys)
let valueArray : Array = [Any](dictionary.values)
print("keys:\(keysArray)\nvalues:\(valueArray)")
打印的结果:
keys:["key1", "key2"]
values:["value1", "vaule2"]

你可能感兴趣的:(swift 开发点滴总结)