当使用 Objective-C 编译器编译时,Grand Central Dispatch 对象的行为类似于 Objective-C 对象。但这对我来说有点不清楚。
实际上,Objective-C 对象是至少具有一个字段的结构:指向isa
对象类结构的指针(指针)。其他字段(如果有)对应于对象的 ivars。
那么,可以将 GCD 对象转换为第一个字段是指向 Objective-C 类结构的指针的结构吗?由于调度对象参与 ARC,编译器会做什么:它是向对象发送消息(例如)还是生成retain
和调用?我的意思是,GCD 对象是否以时尚的方式响应 ObjC 消息?release
objc_msgSend(obj, @selector(retain))
dispatch_object_retain
dispatch_object_release
[obj mesg]