取代自我> isa是因为Xcode 4.6的弃用
我刚刚安装了Xcode 4.6,现在我在我pipe理的一个古老的代码中收到了新的错误。
编译器现在抱怨说:“直接访问Objective-C的isa被弃用,而不赞成object_setClass()和object_getClass()”,并且不会构build。
所以我的问题是,这是正确的等值?
self->isa = [CustomClass class];
换成:
object_setClass(self, [CustomClass class]);
谢谢
访问isa
已经被废弃了一段时间,工具只是没有告诉你这一点。 值得注意的是,至less只要标记指针存在于obj-c中,它就被弃用了。
是的, object_setClass()
是适当的替代。
这就是说,为什么你甚至需要这个? 极less数情况下,replace一个对象的类是合适的,唯一有效的情况是我想到的是当你试图dynamic地inheritance一个类,以便将新的行为注入个别实例而不用整体修改类(这当然是你可能不需要做的事情)。
- 在Swift应用中使用C,C ++和Objective-C框架
- 如何使用Xcode 5可视化debugging器快速查看自定义对象?
- iOS objective-C:在浮点上使用模来从“英尺”获得“英寸”
- 如何在导航条下的iOS UITableView?
- AVAudioPlayer获取错误的文件持续时间的iOS 10
- 在C,Go和Swift中构建小型跨平台CLI工具
- 如何检查表中存在的数据库sqlite的Xamarin iOS
- 我怎样才能裁剪图像的面具,并与iPhone上的另一个图像(背景)结合? (首选OpenGL ES 1.1)
- 如何知道NSURLSessionDataTask响应是否来自caching?