17-swift专题

在swift中懒加载的写法

  • 只需要在定义的时候加上lazy的修饰符
//写法一
lazy  var Button : UIButton = UIButton()
//写法二
lazy var button : UIButton{
    let button = UIButton()
    return button
}()


在swfit中单例的写法

  • 两个步骤
  //1. 初始化一个变量, 并用static修饰
 static let sharedManager = BNTimestampManager()
 
  //2. 私有化init方法
    private override init() {
        super.init()
    }
 

如何避免闭包的循环引用

枚举如何绑定值

  • swift中既可以给枚举绑定Int类型的值, 也可以绑定String类型的值
enum name : Int
{
    case a = 1
    case b 
    case c 
}

enum name : String
{
    case a = "a"
    case b = "b"
    case c = "c"
}

如何进行类型转换

  • 使用as? 或者 as!
    • ?表示转换后可能为空
    • !表示转换后肯定不为空

字典或数组等集合中, 是否可以存储Int类型

  • 可以, swift中的字典和数组都是结构体,所以可以存储任何类型的元素
  • OC中的字典和数组是对象, 只可以存储对象

解释一下区间的概念

  • 开区间 0..< a
  • 闭区间 0...a

String和NSString有什么区别

  • 两者都是用于处理字符串的相关操作
  • String是结构体, NSString是对象
  • 两者可以互相转换

使用Cocoapods的注意事项?

  • 与OC的使用方法一致

如何重载运算符?

//重写 + 方法
 func + (p1 : CGPoint, p2 : CGPoint) -> CGPoint
{
    return CGPoint(x: p1.x + p2.x, y: p1.y + p2.y)
}

let p1 = CGPoint(x: 10, y: 20)
let p2 = CGPoint(x: 15, y: 10)
let p3 = p1 + p2

编程题

1.用runtime写一个字典转模型

2.用你最简单的方法写一个瀑布流

你可能感兴趣的:(17-swift专题)