消息关闭
    暂无新消息!
存储图片的代码(此时图片已经在一个UIImageView里)(还有原谅我用中文命名变量)
//获取图片数据
            let 图片数据:Data = UIImageJPEGRepresentation(图片框.image!, 1.0)!
            //以时间作为文件名
            let 当前时间:Date = Date()
            let 时间格式 = DateFormatter()
            时间格式.dateFormat = "yyy-MM-dd 'at' HH:mm:ss.SSS"
            let 当前时间字符串 = 时间格式.string(from: 当前时间) as String
            //综合路径 去除时间中的空格
            let 图片路径:String = 应用主目录+"/"+deleteSpaces(当前时间字符串)+".jpg"
            //写入图片
            writeDataToEndOfFile(fileURL: 图片路径, contentToWrite:图片数据, create: true)
            //此处继续写入相应信息到主数据txt里


//写入文件
func writeDataToEndOfFile(fileURL url1:String,contentToWrite fileData:Data,create createOrNot:Bool){
    
    let fM:FileManager = FileManager.default
    
    if( !fM.fileExists(atPath:url1)  &&  createOrNot ){
        fM.createFile(atPath: url1, contents: nil, attributes: nil)
    }
    let fUpdater:FileHandle = FileHandle(forUpdatingAtPath: url1)!
    //写入新的
    fUpdater.seekToEndOfFile()
    fUpdater.write(fileData)
    fUpdater.closeFile()
}


读取图片的代码
//读图,无文件时自动生成
func readImage(imageUrl url:String) -> UIImage? {

let fM:FileManager = FileManager.default

if( !fM.fileExists(atPath:url)){
print(!fM.fileExists(atPath:url))
fM.createFile(atPath: url, contents: nil, attributes: nil)
print(!fM.fileExists(atPath:url))
}
    let fUpdater:FileHandle = FileHandle(forUpdatingAtPath: url)!
    let imageData:Data = fUpdater.availableData
fUpdater.closeFile()
    let image = UIImage(data:imageData)
    
    return image
}


在不在xcode上再次点run的情况下,图片是可以顺利从本地读取出来的
但每次只要再次点run,图片就消失了,再次尝试读取就会在创建fileHandle 的那一行出现 unexpected found nil when unwrapping an optional value 的报错

有点急,非常感谢!

3个回答

︿ 0
不明白什么意思。xcode每次运行app的时候,都会重新生成随机的app路径。这个路径如果你想拿只能拿到本次运行的路径。
︿ 0
对了,我获取应用主目录的代码:
let 应用主目录 = NSHomeDirectory()+"/Documents"