有没有办法以编程方式(在 Objective-C 中)找出 iOS 设备(如 iPad 2 16G、32G、64G)的市场总物理内存?看起来UIDevice
相关的 API(例如此处和此处讨论的)没有提供此类信息。
谢谢!
请看这里。您可以获得设备总空间以及可用空间。它给你一个清晰的想法。
派对有点晚了,但如果还有人来,你就去吧:
这一款为您提供了 iOS 设备上销售的内存大小(16GB、32GB、64GB、128GB ......)
使用其他人建议的方法计算,然后四舍五入到最接近的 2 的较大幂。
斯威夫特 3.0 版本
extension UIDevice {
var marketedMemorySize: Int {
do {
let systemAttributes = try FileManager.default.attributesOfFileSystem(forPath: NSHomeDirectory() as String)
let totalDiskSpaceInBytes = (systemAttributes[FileAttributeKey.systemSize] as? NSNumber)?.int64Value
func formatter(_ bytes: Int64) -> String {
let formatter = ByteCountFormatter()
formatter.allowedUnits = ByteCountFormatter.Units.useGB
formatter.countStyle = ByteCountFormatter.CountStyle.decimal
formatter.includesUnit = false
return formatter.string(fromByteCount: bytes) as String
}
if let bytes = totalDiskSpaceInBytes {
let memory = formatter(bytes)
if let floatMemory = Float(memory) {
if floatMemory > 128 {
return 256
} else if floatMemory > 64 {
return 128
} else if floatMemory > 32 {
return 64
} else if floatMemory > 16 {
return 32
} else if floatMemory > 8 {
return 16
} else if floatMemory > 4 {
return 8
}
}
}
return 0
}
catch {
return 0
}
}
}
像这样使用它:
UIDevice.current.marketedMemorySize