美文网首页
iOS 开发图片上传优化

iOS 开发图片上传优化

作者: 133sheiya | 来源:发表于2021-09-15 11:19 被阅读0次
    image.png

    场景如上

    • 如果只是需要了图片顺序。即第一张图 变成了第二张,第二张变成了第一张图。
    • 在俩张图片的基础上又多加了2张图片。顺序如下。其实已经存在的俩张图片是可以不用上传的。只要把本次新加的图片上传 然后也要确保顺序


      image.png

    基于此 我写了下 我的实现逻辑

    
      let originStr = "a,b" //原始的字符串
            //原始数组
            let imgArr1 = [UIImage(named: "shareicon"),UIImage(named: "zjlunch_place")]
            /// 新数组
            let imgArr2 = [UIImage(named: "zjlunch_place"),UIImage(named: "lake"),UIImage(named: "shareicon")]
            
            var sameArr:[(Int,Int)] = []
            for i in 0 ..< imgArr1.count {
                for j in 0 ..< imgArr2.count {
                    if let img0 = imgArr1[i],let img1 = imgArr2[j] {
                        if img0 == img1 {
                            print("imgArr1中的\(i + 1)个元素与imgArr2中的\(j + 1)个元素是相同的")
                            sameArr.append((i,j))
                        }
                    }
                }
            }
            var uploadArr:[(String,UIImage)] = []
            var newUploadImgStrArr:[String] = []
            for obj in imgArr2 { // 占位元素
                if let img = obj {
                    uploadArr.append(("1",img))
                }else {
                    uploadArr.append(("0",UIImage()))
                }
                newUploadImgStrArr.append("")
            }
            print("***sameArr***")
            print(sameArr)
            print("***sameArr***")
            let originUploadStrArr = originStr.components(separatedBy: ",") //原始返回的字符串数组
            
            for obj in sameArr {
                let currentIndex = obj.1
                let lastIndex = obj.0
                uploadArr[currentIndex].0 = "0" //表示当前图片不需要重新上传 待会直接拼接到对应顺序里
                newUploadImgStrArr[currentIndex] = originUploadStrArr[lastIndex]
            }
            
            for (index,obj)  in uploadArr.enumerated() {
                if obj.0 == "1" { //表示之前没有上传过 现在需要上传。
                    print("上传图片操作 后端返回图片地址 ")
                    newUploadImgStrArr[index] = "新的地址" //直接插入新的
                }
            }
            
            print("所有新添加的图片上传完 将新的图片字符串 连同其他的param返回给后台")
    

    这样可以减少服务端有的图片重复上传。

    相关文章

      网友评论

          本文标题:iOS 开发图片上传优化

          本文链接:https://www.haomeiwen.com/subject/lkukgltx.html