arrays - 如何在swift中将字符串转换为 float 组

标签 arrays 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步。然后加载字符串文件“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/

相关文章:

arrays - 按内部数组值查找的 Ruby 数组数组

swift - 如何使用 SwiftUI 将 VStack 在 List 内水平居中?

swift - 在 MFMailComposeViewController 中设置导航栏项目颜色

swift - SKSpriteNode Overlay 未显示

swift - 如何在 Xcode 7 OSX 中创建 NSRadioButton 组

swift - 使用视觉格式语言 (Swift) 创建三列

php - 将数组提取到全局变量中

java - 按字母顺序排列字符串中的字符,然后将按字母顺序排列的字符放入新字符串中?

python - Python 中的字符串列表乘法

arrays - jq - 为数组上的值添加前缀