如何使用 swift 调用 size_t os_proc_available_memory(void)

How to call size_t os_proc_available_memory(void) with swift

提问人:Mike R 提问时间:5/6/2021 最后编辑:Mike R 更新时间:5/6/2021 访问量:1405

问:

我从来没有从 Swift 调用过 Obj C 函数,我看到的大部分信息都是关于导入框架等的,所以我很难理解如何获取我需要的数据。

我想获得我的应用程序可用的总可用内存,我能找到的只是 https://developer.apple.com/documentation/os/3191911-os_proc_available_memory。我可以将其分配为 double/int/float/string,无论如何。但是我还没有弄清楚如何调用这个函数来获取值。

因此,如果我打开一个游乐场并写下以下内容:

import OSLog
import os

func getMemory() -> Int {
    let size = os_proc_available_memory()
    os_log("\(size)")
}

我收到错误:在范围内找不到“os_proc_available_memory”。

这个函数基本上是我尝试做的,因为我的任务是使用日志记录框架记录多个数据点,包括可用内存。

谢谢!

Swift Objective-C 内存管理

评论

0赞 matt 5/6/2021
怎么了?
0赞 Mike R 5/6/2021
我会在帖子中添加更多内容。
0赞 Martin R 5/6/2021
别忘了括号:let memoryAvailable = os_proc_available_memory()
0赞 Mike R 5/6/2021
完全正确,但仍然不行。即使使用空 () 或 (void) 返回 size_t os_proc_available_memory(void) 相同的错误。
1赞 Martin R 5/6/2021
如果您包含在桥接头文件中,则它可用(适用于 iOS 13+,不适用于 macOS)。<os/proc.h>

答:

3赞 Mike R 5/6/2021 #1

正如 Martin R 在评论中指出的那样,我只是需要将 os/proc.h 添加到桥接标头中。

#include <os/proc.h>

现在,我可以在我的编译项目中成功调用上面编写的函数。

谢谢!