优点:
1:Category,使用category可以在不改变原来类的同时为类增加新的方法或者重写原来类的方法实现(使用runtime方法还可以在分类中实现方法交换和添加属性操作)
2:运行时 动态识别,动态添加方法,动态添加属性, 方法交换等。
3:消息机制, 消息传递机制(objc_msgSend( )),消息转发机制(动态解析, 备援接受者,消息转发)
4:可以和C, C++, Swift混合编程。
缺点:
1:不支持命名空间
2:不支持运算符重载
3:不支持多重继承
4:使用运行时类型是,编译时的优化方法无法调用,如内联函数。