首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在MySQL数据库中存储对象的颜色数据?

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

Stack Overflow用户
提问于 2016-05-06 16:32:49
回答 1查看 827关注 0票数 1

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

我目前正在努力处理背景颜色的颜色数据。如果我打印()颜色,我得到类似于"UIDeviceRGBColorSpace 0.866667 0.92549 11“。我还可以使用以下代码将其转换为NSData:

代码语言:javascript
运行
复制
let data = NSKeyedArchiver.archivedDataWithRootObject(self.view.backgroundColor!)

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

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

EN

Stack Overflow用户

发布于 2016-05-06 18:41:49

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

代码语言:javascript
运行
复制
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并将这些数据存储为字符串可能是更好的选择。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37067791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档