dynamic 用来修饰任何兼容oc类的成员,因为被标记dynamic修饰符的类成员会由 Objective-C 运行时系统进行动态派发,所以它们会被隐式标记objc特性。
final 被final修饰的类不会被其他类继承,如果用它修饰类中的属性、方法或下标,不会被其子类修改
lazy 用于存储型属性,它是指第一次被调用时才会计算初始值的属性,另一个作用是,或者当获得属性的初始值需要复杂或大量计算时,可以只在需要的时候计算它
optional 该修饰符用于修饰协议中的属性、方法以及下标成员,表示符合类型可以不实现这些成员要求。
required 该修饰符用于修饰类的指定构造器或便利构造器,表示该类所有的子类都必须实现该构造器。在子类实现该构造器时,必须同样使用required修饰符修饰该构造器。
weak 该修饰符用于修饰变量或存储型变量属性,表示该变量或属性持有其存储的对象的弱引用。这种变量或属性的类型必须是可选的类类型。使用weak修饰符可避免强引用循环。