gpt4 book ai didi

php - 如何在 MySQL 数据库中存储对象的颜色数据?

转载 作者:行者123 更新时间:2023-11-28 08:38:23 24 4
gpt4 key购买 nike

我在 iOS Swift 应用程序中遇到这样一种情况,用户可以通过添加其他 View 和/或更改 View 的背景颜色来“自定义屏幕”。当他们点击保存时,我想将每个对象的属性以及父 View 的背景颜色存储到 MySQL 数据库中,以供以后检索和重建 View 。所有数据更新均通过 PHP REST 服务完成。

我目前正在努力处理背景颜色的颜色数据。如果我打印()颜色,我会得到类似“UIDeviceRGBColorSpace 0.866667 0.92549 1 1”的东西。我还可以使用以下方法将其转换为 NSData:

let data = NSKeyedArchiver.archivedDataWithRootObject(self.view.backgroundColor!)

但是,无论哪种情况,我都不知道如何通过 PHP REST 服务将数据保存到数据库,甚至不知道我会使用什么数据类型。

我是不是走错了路?我应该做一些事情,比如获取 RGB 值和 Alpha 并将它们保存到数据库中的 4 个属性,还是获取十六进制值并存储它?或许,还有一种更直接的不同方法?

最佳答案

如果您关心保留在该 NSColor/UIColor 实例中编码的所有信息(其原始颜色空间中的原始精确值可能不是 RGB,校准等)并且需要将其编码为字符串(而不是例如二进制blob,这对于 MySQL 也是可能的),你可以使用 base64 encoding – 以 base64 编码形式向您的服务器发送颜色,并在检索时将其解码回来。

let color = NSColor.blackColor()
let data = NSKeyedArchiver.archivedDataWithRootObject(color)

// this can go in your database
let base64EncodedColorString = data.base64EncodedStringWithOptions([])

let decodedColorData = NSData(base64EncodedString: base64EncodedColorString, options: [])

NSKeyedUnarchiver.unarchiveObjectWithData(decodedColorData!)

这有一个明显的缺点,即您的服务器将不知道该数据编码的内容,因此如果您关心这一点,那么 getting the colour's RGB components并将它们存储为字符串可能是更好的选择。

关于php - 如何在 MySQL 数据库中存储对象的颜色数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37067791/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com