1获取对象内存地址
在Swift中获取对象内存地址的方式与OC的不一样;Swift中不能在使用po 属性
的方式,来获取对象内存。
查找后发现有两个方式可以获取对象内存:
withUnsafePointer(to: &T) {ptr in print(ptr)}
func printPointer<T>(ptr: UnsafePointer<T>) {print(ptr)}
2根据内存地址看内存分布
举个🌰:定义一个变量number
var number = 10
withUnsafePointer(to: &number) { ptr in
print(ptr)
}
在代码末尾加个断点;此时控制台如图所示:
复制右边的内存地址;
第一种方法是:选中左边变量number
,点击鼠标右键,出现如图所示内容:
选择View Memory of "number",然后在界面底下的Address中粘贴内存地址后回车;
因为Int占用的是8个字节,可以看到前8个字节中存储的内容为:0A 00 00 00 00 00 00 00
其中0A就是number的值;由于大小端存储规则,所以值0A在第一位。
第二种方法是:在Xcode菜单栏中找到Debug-Debug WorkFlow - View Memory,就出现了上述的界面。