gpt4 book ai didi

dictionary - 如何将 UIColor 包含到 Swift 中字典的值中?

转载 作者:搜寻专家 更新时间:2023-11-01 06:48:47 25 4
gpt4 key购买 nike

我想在 Swift 中启动一个字典数组,其中一个键的值是 UIColor 类型。所以我想创建以下数组:

var myArr:[[String: Any]] = [
["name": "mark", "age": "30", "color": UIColor.blackColor()]
]

但是,上面的代码返回了一个AssertString is not convertible to UIColor错误。但是在UIColor中应该使用Any,我不知道为什么会返回这样的错误,也不知道它是什么意思。

那么如何解决问题并正确使用 UIColor 实例呢?

更新

抱歉,但我发现实际错误不在上面的代码片段中 - 它在以下部分,它来 self 自己的 UIColor 扩展:

["name": "pete", "age" "25", "color": UIColor(R:245.0, G:168.0, B:13.0, A:1.0)]

然后我创建了一个名为 UIColor+ColorWithInt.swift 的单独文件(不确定正确的命名约定,但我只是将我的旧 Objective-C 应用程序移植到 Swift,这是因为我使用 Dictionary 来表示上面的数据)。

import Foundation
import UIKit

extension UIColor {
func colorWithR(R: CGFloat, G: CGFloat, B: CGFloat, A: CGFloat) -> UIColor {
return UIColor(red: (R/255), green: (G/255), blue: (B/255), alpha: A)
}
}

最佳答案

正如我在评论中提到的,我建议在这种情况下使用结构或其他一些具体的数据结构。

import UIKit

struct Person {
var name: String
var age: Int
var color: UIColor
}

var myArr:[Person] = [
Person(name: "mark", age: 30, color: UIColor.blackColor())
]

或者作为一个类...

class Person {
var name: String
var age: Int
var color: UIColor

init(name: String, age: Int, color: UIColor) {
self.name = name
self.age = age
self.color = color
}
}

var myArr:[Person] = [
Person(name: "mark", age: 30, color: UIColor.blackColor())
]

回复:更新

我想你想要这样的东西......

extension UIColor {
convenience init(R: CGFloat, G: CGFloat, B: CGFloat, A:CGFloat) {
self.init(red: (R/255.0), green: (G/255.0), blue: (B/255.0), alpha: A)
}
}

var red = UIColor(R: 255, G: 0, B: 0, A: 1)

关于dictionary - 如何将 UIColor 包含到 Swift 中字典的值中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25728997/

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