想知道,创建一个类有什么区别:
Class clazz = [NSString class];
[clazz alloc];
Run Code Online (Sandbox Code Playgroud)
和
class_createInstance(clazz,0);
Run Code Online (Sandbox Code Playgroud)
基本上,你不应该使用,class_createInstance()除非你对自己所做的事情有足够的了解,否则你可以自己回答这个问题.
呼叫class_createInstance()绕过已经实施的任何特殊情况+alloc.如果您尝试使用它NSString,您将获得一个NSString实例,而不是私有占位符类的实例,它是-init...您要发送它的任何消息的正确目标.
一个是函数,另一个是方法。该函数由于是函数,因此不能重载。该方法(因为它是一种方法)可以想象以不同的方式实现。
例如,由于 Cocoa 中的某些类(例如集合)是类簇,因此它们可能会被重写+alloc以实现自定义行为。使用函数时不能这样做。
| 归档时间: |
|
| 查看次数: |
1553 次 |
| 最近记录: |