1

有没有办法以编程方式(在 Objective-C 中)找出 iOS 设备(如 iPad 2 16G、32G、64G)的市场总物理内存?看起来UIDevice相关的 API(例如此处此处讨论的)没有提供此类信息。

谢谢!

4

2 回答 2

3

请看这里。您可以获得设备总空间以及可用空间。它给你一个清晰的想法。

于 2013-01-15T04:20:38.627 回答
2

派对有点晚了,但如果还有人来,你就去吧:

这一款为您提供了 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
于 2017-03-18T07:41:07.317 回答