ios - 解析数组图像保存和获取

标签 ios swift parse-platform parse-server

我有一个马赛克应用程序,可以拍摄多个尺寸的照片并将它们分解为较小的照片。根据照片的大小,较小照片的数量可能会有所不同。现在我有一个名为 imageNameList2 的 NSMutableArray,它保存从较大图像中获取的所有较小图像。在本示例中,我展示了一个从图像资源列表中调用图像的示例,以便更轻松地回答这个问题。

这是 imageNameList (NSMutableArray 保存所有较小的图像)

var imageNameList: [String] {
    var imageNameList2:[String] = [] //[NSMutableArray]()
    for i in 0...149 {
        let imageName = String(format: "pic_%03d", Int(i))
        imageNameList2.append(imageName)
    }
    return imageNameList2
}

我想做的是有一个继续按钮,将所有这些图像保存为 piffles 或任何其他格式以进行最佳解析,并有另一个名为“检索”的按钮,它将从解析中检索所有这些照片。我基本上有一个解析服务器,它利用解析框架来帮助加速后端进程。如果每次存储的图像数量不同,您能否告诉我如何保存和检索此 NSMutableArray

最佳答案

我认为你正在尝试做这样的事情。这只是一个例子。还有很多工作要做,但希望这能让您开始。我没有运行或测试此代码。

这个想法是将图像保存为 PFFiles,并为每个文件创建一个“图 block ”PFObject。然后将所有“tile”PFObject 保存到图像 PFObject 的“tiles”键。然后在需要时通过 objectId 调用该图像。

祝你好运。

let appleTiles = ["apple1, apple2, apple3"]
let orangeTiles = ["orange1, orange2, orange3, orange4, orange5"]

func usage() {

    //dont literally run these synchronously like this
    post(appleTiles)
    post(orangeTiles)
    download()
}

func post(_ tileNames: [String]) {

    let image = PFObject(className: "Image")

    let tilesPF = tileNames.map({ name in
        let data = UIImagePNGRepresentation(UIImage(named: name))!
        let file = PFFile(data: data)

        let tile = PFObject(className: "Tile")
        tile["tile"] = file
    })

    image["tiles"] = tilesPF

    image?.saveInBackground(block: { responseObject, error in

        //you'll want to save the object ID of the PFObject if you want to retrieve a specific image later
    })
}

func download() {

    let query = PFQuery(className: "image")

    //add this if you have a specific image you want to get
    query.whereKey("objectId", equalTo: "someObjectId")

    query.findObjectsInBackground({ result, error in

        //this is probably close to how you'd unwrap everything but again, I didn't test it so...
        if let objects = result as? [PFObject], let first = objects.first, let image = first["image"] as? PFObject, let tiles = image["tiles"] as? [PFObject] {

            tiles.forEach({ tile in

                let file = tile["tile"]

                //now you have an individual PFFile for a tile, do something with it
            })
        }
    })
}

关于ios - 解析数组图像保存和获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42587944/

相关文章:

ios - 在运行时查找 Xcode 构建方案名称

ios - 取消当前的 UIScrollView touch

ios - Game Center 邀请立即失败

ios - 如何重用 View 对象?

ios - 后台线程完成后的动画 (iOS/Swift)

java - 存储给定 ParseUser 的所有 ParseFiles?

ios - Swift 3 部分中的行数无效

swift - 在 swift 应用程序终止时执行代码

iOS App Extension 将 PFUser currentUser 设置为 nil

具有混合对象的 iOS 解析查询