gpt4 book ai didi

ios - 在 Swift 中创建数组时的一般问题

转载 作者:可可西里 更新时间:2023-11-01 00:38:58 26 4
gpt4 key购买 nike

这是我使用的协议(protocol),

public protocol PValidationCondition: Equatable {
associatedtype T
func isValid(value: T) -> Bool
func errorMessage() -> String
}

这是我正在使用的模型:

struct PValidationElementWithConditions<T: PValidationCondition> {
let validationElement: PValidationElement
var conditions: [T] = []
}

但我想像下面这样将多个对象存储在数组中:

var validationElementsWithConditions: [String: PValidationElementWithConditions] = [:]

但是我收到以下错误:

"Cannot convert value of type '[String : PValidationElementWithConditions<_>]' to specified type '[String : PValidationElementWithConditions]'"

最佳答案

这是不正确的

[String: PValidationElementWithConditions]

你必须做

[String: PValidationElementWithConditions<Type>]

其中 Type conforms to PValidationCondition & Equatable 从这里的错误可以清楚地看出它需要一个参数

PValidationElementWithConditions<_>

//

extension String  : PValidationCondition { 

public func isValid(value: String) -> Bool {

return true
}

public func errorMessage() -> String {

return ""
}

public typealias T = String

}

var validationElementsWithConditions: [String: PValidationElementWithConditions<String>] = [:]

关于ios - 在 Swift 中创建数组时的一般问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51787767/

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