有没有办法以编程方式(在Objective-C中)找出iOS设备(如iPad 2 16G,32G,64G)的市场总物理内存?看起来UIDevice
相关的API(例如讨论的here和here)不会提供此类信息。
谢谢!
答案 0 :(得分:3)
请参阅here。您可以获得设备总空间以及可用空间。 它给你一个清晰的想法。
答案 1 :(得分:2)
派对有点晚了,但如果还有人来到这里,那你去吧:
此版本为您提供在iOS设备上销售的内存大小(16GB,32GB,64GB,128GB ......)
使用其他人建议的方法计算,然后四舍五入到最接近的2的更大幂。
Swift 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