123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216 |
- //
- // CLDeviceDataPlist.swift
- // SaveDeviceData
- //
- // Created by weclouds on 2019/6/3.
- // Copyright © 2019 weclouds. All rights reserved.
- //
- import UIKit
- //蓝牙数据
- /*
- 打开,没有设备 -->添加设备 --> 点击蓝牙名称 --> 首页显示
- 打开 ,有设备 -->左滑重新连接 --> 蓝牙搜索 --> 设备不在当前位置
- --> 设备在当前位置 --> 连接成功 --> 跳转
-
- */
- // key 用 类型 + 型号
- class CLDeviceDataPlist: NSObject {
- // static let share :CLDeviceDataPlist = {
- // let tool = CLDeviceDataPlist()
- // return tool
- // }()
-
- // var filePath = "" // 文件路径
- //判断文件是否存在改plist ,不存在创建
- open func createPlistFile(_ fileName:String) {
- //获取路径
- let path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
- let filePath = path + "/" + fileName
- //###注意加横杠“/”,否则真机测试崩溃,无法写入####
- if FileManager.default.fileExists(atPath: filePath) == false {
- let rootDict = NSMutableDictionary()
- rootDict.write(toFile: filePath, atomically: true)
- print("plist创建成功")
-
- }else{
- print("文件已存在")
- }
- }
-
- private func getFilePath(_ fileName:String) -> String {
- //获取路径
- let path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
- let filePath1 = path + "/" + fileName
- return filePath1
- }
- //遍历数据
- private func findPlistFileData(_ key :String,fileName:String) -> Bool {
- let filePath = getFilePath(fileName)
- if let dictData = NSMutableDictionary(contentsOfFile: filePath) {
- for (k,_) in dictData{
- //判断是否存在相同蓝牙名称
- if key == (k as! String){
- return true
- }
- }
- }
- return false
- }
-
- //保存数据
- private func savePlistData(_ fileName: String, key:String, deviceData:[String:Any]) {
- let filePath = getFilePath(fileName)
- let rootDict = NSMutableDictionary(contentsOfFile: filePath) // 根
- rootDict?.setObject(deviceData, forKey: key as NSCopying)
- rootDict?.write(toFile: filePath, atomically: true)
- print("保存成功 -- \(filePath)")
- self.readAllPlistData(fileName)
- }
-
- //保存
-
- func saveData111 (_ fileName :String,key:String, deviceData:[String:Any]) {
- //设备已存在
- self.savePlistData(fileName, key: key, deviceData: deviceData)
-
- }
-
- func updatePlist(At fileName :String,key:String, deviceName:String) {
- //获取所有数据
- let filePath = getFilePath(fileName)
- if let dicData = NSMutableDictionary(contentsOfFile: filePath) {
- let dict1 = dicData[key] as! NSMutableDictionary
- dict1.setObject(deviceName, forKey: "DeviceName" as NSCopying)
-
- self.savePlistData(fileName, key: key, deviceData: dict1 as! [String : Any])
-
- // log.debug("更新呢字典中的 -- device --- 、\(dicData)")
- }
-
- }
-
- func saveData (_ fileName :String,key:String, deviceData:[String:Any]) -> Bool {
-
- if findPlistFileData(key, fileName: fileName) == true {
- //设备已存在
- self.savePlistData(fileName, key: key, deviceData: deviceData)
- print("该设备已存在")
- return true
- }
- return false
- }
-
- //保存
- func updateData (_ fileName :String, key:String, deviceData:[String:Any]) -> Bool {
-
- if findPlistFileData(key, fileName: fileName) == true {
- //设备已存在
- self.savePlistData(fileName, key: key, deviceData: deviceData)
- print("该设备已存在")
- return true
- }
-
- return false
- }
-
-
- private func deletePlistData(_ fileName:String,key:String) {
- let filePath = getFilePath(fileName)
- let rootDict = NSMutableDictionary(contentsOfFile: filePath) //根
- rootDict?.removeObject(forKey: key as Any) // 二级
- rootDict?.write(toFile: filePath, atomically: true)
- print("删除成功")
- }
- //删除所有数据
- func removeAllData(_ fileName:String) {
- let filePath = getFilePath(fileName)
- let rootDict = NSMutableDictionary(contentsOfFile: filePath) //根
- if (rootDict?.allKeys.count)! > 0 {
- for key in rootDict!.allKeys {
- rootDict?.removeObject(forKey: key as Any) // 二级
- rootDict?.write(toFile: filePath, atomically: true)
- print("删除成功")
- }
- }else{
- print("列表里边没有设备")
- }
-
- log.debug("查看剩余数据---\(readAllPlistData(fileName))")
-
- }
-
- func deleteData(_ fileName:String, key:String) {
- guard findPlistFileData(key, fileName: fileName) == true else {
- print("该设备不存在")
- return
- }
- self.deletePlistData(fileName, key: key)
- }
-
- //查找
- func findData(_ fileName:String,key:String) -> NSDictionary?{
- guard findPlistFileData(key, fileName: fileName) == true else {
- print("该学号不存在")
- return nil
- }
- let filePath = getFilePath(fileName)
- if let dicData = NSMutableDictionary(contentsOfFile: filePath) {
- for (k,v) in dicData {
- if key == (k as! String) {
- let dic2 = v as! NSDictionary
- print("该设备存在")
- for (k1, v2) in dic2 {
- print("\(k1): \(v2)")
- }
- return dic2
- }
- }
- }
- return nil
- }
-
- ///读取所有数据
- func readAllPlistData(_ fileName:String) ->NSDictionary {
- let filePath = getFilePath(fileName)
- if let dicData = NSMutableDictionary(contentsOfFile: filePath) {
- print(dicData)
-
- return dicData
- }
-
- return NSDictionary()
- }
-
- ///获取蓝牙名称
- func readPeripheral (from fileName:String,key:String) ->String {
- let filePath = getFilePath(fileName)
- if let dicData = NSMutableDictionary(contentsOfFile: filePath) {
- print(dicData)
- for (k,v) in dicData {
- if key == (k as! String) {
- let dic2 = v as! NSDictionary
- print("该设备存在")
- for (k1, v2) in dic2 {
- let k11 = k1 as! String
- if k11 == "PerpheralName"{
- let perpheralName = dic2["PerpheralName"] as! String
- return perpheralName as String
- }
- print("\(k1): \(v2)")
- }
-
- }
- }
-
- }
-
- return ""
- }
-
- }
|