如何在Swift中访问结构指针的属性/成员

如何在Swift中访问结构指针的属性/成员,swift,pointers,struct,dyld,mach-o,Swift,Pointers,Struct,Dyld,Mach O,我在处理Mach-O头文件和dyld时遇到了这个函数\u dyld\u get\u image\u header,它返回指向动态库的Mach头文件的指针 我想我可以通过下面的指针访问动态库的Mach-O段。但是,我无法访问Mach-O标头的属性,并且出现了错误。在下面的Swift代码中,我试图访问结构的ncmds或load命令属性,但遇到错误: var currentLibrary = 0 // Gets Pointer to Mach Header of First Dynamic Libra

我在处理Mach-O头文件和dyld时遇到了这个函数
\u dyld\u get\u image\u header
,它返回指向动态库的Mach头文件的指针

我想我可以通过下面的指针访问动态库的Mach-O段。但是,我无法访问Mach-O标头的属性,并且出现了错误。在下面的Swift代码中,我试图访问结构的ncmds或load命令属性,但遇到错误:

var currentLibrary = 0
// Gets Pointer to Mach Header of First Dynamic Library, Index 0
let libHeader = unsafeBitCast(_dyld_get_image_header(UInt32(currentLibrary)), to: UnsafePointer<mach_header_64>.self)

print(libHeader.ncmds)

var currentLibrary=0
//获取指向第一个动态库(索引0)的马赫标头的指针
让libHeader=unsafeBitCast(_dyld_get_image_header(UInt32(currentLibrary)),to:UnsafePointer.self)
打印(libHeader.ncmds)
错误:

Value of type 'UnsafePointer<mach_header_64>' has no member 'ncmds'
类型为“UnsafePointer”的值没有成员“ncmds”

它类似于
c
,在这里您将使用
->
操作符(
libHeader->ncmds
),要求使用
(*libHeader).ncmds
。也就是说,首先引用指针以获得
mach_header_64
值,然后访问其
ncmds
字段


在Swift中,这是完全相同的想法,但语法不同:
libHeaver.pointee.ncmds
它类似于
c
,在这里您将使用
->
操作符(
libHeader->ncmds
),requirement to
(*libHeader.ncmds
)。也就是说,首先引用指针以获得
mach_header_64
值,然后访问其
ncmds
字段

在Swift中,这是完全相同的想法,但语法不同:
libHeaver.pointee.ncmds

可能有用:可能有用: