objective-c – 使用Class指针有多安全?

objective-c – 使用Class指针有多安全?,第1张

概述Objective-C使用Class有多安全? – >我可以将Class safe存储在字典中而不是比较 info[@"class"] = [User class];...if ([User class] == info[@"class"]) {} – >类指针可以改变吗? – >是否被隔离为永不为零? 类对象的行为与普通对象相似.它们可以保留,释放,作为参数和返回值传递,存储在ivars Objective-C使用Class有多安全?

– >我可以将Class safe存储在字典中而不是比较

info[@"class"] = [User class];...if ([User class] == info[@"class"]) {}

– >类指针可以改变吗?

– >是否被隔离为永不为零?

解决方法 类对象的行为与普通对象相似.它们可以保留,释放,作为参数和返回值传递,存储在ivars和属性中,存储在容器中 – 基本上,任何东西.

如果找不到这样的类,[SomeClassname类]通常不会编译或链接,但是它可以编译但返回nil,例如,当在没有该类可用的OS上运行时,即比旧的OS版本更多您的开发SDK版本.如果此类不存在,NSClassFromString的返回值将为nil.

类对象的指针值(标识)永远不会改变.每个类名只有一个类对象,您可以使用C ==运算符来测试类指针是否是同一个类. (可以使用isSubclassOfClass:class方法测试子类/超类关系).

类对象永远不会被释放 – 你可以依赖它们活着(即不保留它们),直到进程完全终止.

以上情况适用于大多数应用;然而,有一个棘手的捆绑加载案例(甚至更麻烦的捆绑卸载案例):

>加载包可以向运行时添加类,例如导致NSClassFromString开始为其名称返回非零值.>如果动态加载bundle导致类名冲突,则运行时当前会记录投诉但仍在继续工作;没有具体说明在这种情况下究竟发生了什么.>从Mac OS X 10.5开始,可以卸载捆绑包,从而导致其类被删除.没有说明如果保留了其中一些类会发生什么.

总结

以上是内存溢出为你收集整理的objective-c – 使用Class指针有多安全?全部内容,希望文章能够帮你解决objective-c – 使用Class指针有多安全?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1005414.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存