繁体   English   中英

如何快速将String转换为float数组

[英]How to convert String to array of float in swift

var FloatArray:[[Float]] = [[1,2,3],[4,5,6],...,[2,5,3]]
func savefile() {
        let arrayToSave = NSArray(array: FloatArray)
    arrayToSave.write(toFile: filePath, atomically: true)
}

func loadfile() {
    if let loadArray = NSArray(contentsOfFile: filePath) as? [String]{
        //code
    }
}

第1步。

var FloatArray: [[Float]] = [[1,2,3],[4,5,6],...,[2,5,3]]

第2步。

Save the FloatArray in the String file. String = "[[1,2,3],[4,5,6],...,[2,5,3]]"

步骤3.然后加载String文件“ loadArray ”,将String转换为float数组。

如何在Swift中将String转换为float数组?

当调用savefile()和写入FloatArray (这是不是一个类型的 ,所以你应该使用camelCase这里命名惯例, floatArray ...)型[[Float]] ,写入的文件会喜欢类似下面的:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
    <array>
        <real>1</real>
        <real>2</real>
        <real>3</real>
    </array>
    <array>
        <real>4</real>
        <real>5</real>
        <real>6</real>
    </array>
    <array>
        <real>2</real>
        <real>5</real>
        <real>3</real>
    </array>
</array>
</plist>

这意味着写入的数据的类型(浮点数组的数组)也已编码在文件中,并且没有理由尝试读取此数据然后将其转换为String (这种尝试的转换将失败)。

相反,只需修改loadFile()方法以读取文件的内容,然后尝试转换为您已经知道写入该文件的实例的类型的类型,即[[Float]]数组(由NSArray实例)

func loadfile() {
    if let loadArray = NSArray(contentsOfFile: filePath) as? [[Float]] {
        print(loadArray) // [[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [2.0, 5.0, 3.0]]
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM