Search code examples
iosarraysswiftbinaryfiles

Write array of Float to binary file and read it in swift


How can I write array of Floatto binary file and then read it?

var array: [Float]: [0.1, 0.2, 0.3]

func writeArrayToBinary(array: [Float]) {
    //...
}

func readArrayFromBinary() -> [Float] {
    //...
}

Solution

  • Please try this...

    var array: [Float] = [0.1, 0.2, 0.3]
    
    func writeArrayToPlist(array: [Float]) {
        if let arrayPath: String = createArrayPath() {
            (array as NSArray).writeToFile(arrayPath, atomically: false)
        }
    }
    
    func readArrayFromPlist() -> [Float]? {
        if let arrayPath: String = createArrayPath() {
            if let arrayFromFile: [Float] = NSArray(contentsOfFile: arrayPath) as? [Float] {
                return arrayFromFile
            }
        }
        return nil
    }
    
    func createArrayPath () -> String? {
        if let docsPath: String = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true).last {
            return ((docsPath as NSString).stringByAppendingPathComponent("myArrayFileName") as NSString).stringByAppendingPathExtension("plist")
        }
        return nil
    }