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步。然后加载字符串文件“loadArray
”将字符串转换为 float 组。
如何在 Swift 中将字符串转换为 float 组?
最佳答案
当你调用savefile()
并写入FloatArray
时(这不是类型,所以你应该使用camelCase
此处的名称约定为 [[Float]]
类型的 floatArray
...),写入的文件将类似于以下内容:
<?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>
这意味着写入的数据类型( float 组的数组)也在文件中进行编码,并且没有理由尝试读取此数据然后将其转换为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]]
}
}
关于arrays - 如何在swift中将字符串转换为 float 组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41513743/