【发布时间】:2016-12-22 17:32:45
【问题描述】:
我在关注一个apple document,可惜例子是写在objective-c上的,但是我对Swift语言有信心,有些东西的意思看不懂,尤其是这个例子:
void RunLoopSourcesPerformRoutine (void *info){
RunLoopSource* obj = (RunLoopSource*)info;
[obj sourceFired];
}
这一行:RunLoopSource* obj = (RunLoopSource*)info;
参数:void *info表示info是一个指向void的指针,那么我可以放任何类型数据结构的地址,下面我看到各种苹果文档把这个:void *info翻译成swift语言是:
info: UnsafeMutableRawPointer?
现在,RunLoopSource* obj = (RunLoopSource*)info; 行表明 obj 是一个类型为:RunLoopSource 的变量,并为其分配了 (RunLoopSource *) info 的值,但是这句话究竟是什么意思? :(RunLoopSource *) info,以及它是如何翻译成 swift 语言的?
【问题讨论】:
-
Casting between different UnsafePointer<T> in swift 的可能重复项。查看
assumingMemoryBound。
标签: ios objective-c swift pointers unsafemutablepointer