Pet*_*isu 5 cocoa class objective-c
Objective-C使用Class有多安全?
- >我可以将Class safe存储在字典中而不是比较
info[@"class"] = [User class];
...
if ([User class] == info[@"class"]) {
}
Run Code Online (Sandbox Code Playgroud)
- >类指针可以改变吗?
- >它是否被隔离为永远Nil?
类对象的行为与普通对象类似。它们可以被保留、释放、作为参数和返回值传递、存储在 ivars 和属性中、存储在容器 \xe2\x80\x94 中,基本上是任何东西。
\n\n[SomeClassName class]如果找不到此类,通常不会编译或链接,但它有可能编译但返回 nil,例如,在没有该类可用的操作系统上运行时,即比您的开发版本更旧的操作系统版本SDK。如果此类不存在,则NSClassFromString返回值为。nil
类对象的指针值(标识)永远不会改变。每个类名只有一个类对象,可以使用C==运算符来测试类指针是否是同一个类。+ isSubclassOfClass:(子类/超类关系可以使用类方法来测试)。
类对象永远不会被释放 \xe2\x80\x94 您可以依赖它们保持活动状态(即不保留它们),直到进程完全终止。
\n\n上述情况适用于大多数应用;然而,捆绑加载有一个棘手的情况(捆绑卸载的情况甚至更棘手):
\n\nNSClassFromString它们的名称开始返回非零。| 归档时间: |
|
| 查看次数: |
352 次 |
| 最近记录: |