Iphone 通过编程找出iOS设备的市场内存大小

Iphone 通过编程找出iOS设备的市场内存大小,iphone,ios,objective-c,Iphone,Ios,Objective C,有没有办法在Objective-C中以编程方式找出iPad216G、32G、64G等iOS设备的市场总物理内存?它看起来像讨论过的UIDevice相关API,但没有给出此类信息 谢谢 请看。您可以获得设备的总空间和可用空间。 它给你一个清晰的想法。请看。您可以获得设备的总空间和可用空间。 这给了你一个清晰的想法。派对有点晚了,但如果还有人来,你就去吧: 这一个提供了iOS设备上销售的16GB、32GB、64GB、128GB的内存大小 使用其他人建议的方法计算,然后四舍五入到最接近的更大的2次方

有没有办法在Objective-C中以编程方式找出iPad216G、32G、64G等iOS设备的市场总物理内存?它看起来像讨论过的UIDevice相关API,但没有给出此类信息

谢谢

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

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

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

这一个提供了iOS设备上销售的16GB、32GB、64GB、128GB的内存大小

使用其他人建议的方法计算,然后四舍五入到最接近的更大的2次方

Swift 3.0版

像这样使用它:


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

这一个提供了iOS设备上销售的16GB、32GB、64GB、128GB的内存大小

使用其他人建议的方法计算,然后四舍五入到最接近的更大的2次方

Swift 3.0版

像这样使用它:


总空间是否总是与市场上的内存大小完全相同?比如说,如果是iPad216G,检测到的总空间是否正好是16*2^30字节?如果不是,有没有办法检测市场上的内存大小?上面的链接还提供了总空间。谢谢。最后我将总内存四舍五入到最接近的8G增量。总空间是否总是与市场上的内存大小完全相同?比如说,如果是iPad216G,检测到的总空间是否正好是16*2^30字节?如果不是,有没有办法检测市场上的内存大小?上面的链接还提供了总空间。谢谢。最后,我将总内存四舍五入到最接近的8G增量。
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