我的代码如下所示,它在旧设备(如: iPhone 6,iPhone7 )上工作得很好,但是它不工作在iPhone XS Max上,它是返回-378535936在我的iPhone XS Max上。有人知道原因吗?
任何建议都会有帮助的,谢谢。
+ (NSUInteger)getHWPHYSMEMValue {
size_t size = sizeof(int);
int results;
int mib[2] = {CTL_HW, HW_PHYSMEM};
sysctl(mib, 2, &results, &size, NULL, 0);
return (NSUInteger) results;
}
发布于 2019-08-26 02:52:56
您正在尝试获取32位有符号整数的内存大小.如果内存大于2GB,您将得到一个负值(如果超过4GB,它将被截断,或多或少是随机的)。
尝试使用HW_MEMSIZE,它使用uint64_t值。
https://stackoverflow.com/questions/57623960
复制相似问题