gpt4 book ai didi

ios - 如何将计算属性添加到 Array

转载 作者:行者123 更新时间:2023-11-29 01:52:51 25 4
gpt4 key购买 nike

我有:

var _feedbacks: [feedBack]!

我想向 [feedBack] 添加一个属性,以便我可以说:

var _ID = _feedBacks.ID 

我试过:

extension Array {   
var ID: String {
get {
return self.ID
}

set {
self.ID = newValue
}
}
}

但是当我尝试设置/获取ID时,编译器抛出“EXC_BAD_ACCESS”

我也尝试过:

import ObjectiveC

private var arrayAssocationKey: Void?

extension Array {
var ID: String {
get {
return objc_getAssociatedObject(self, &arrayAssocationKey) as? String
}
set {
objc_setAssociatedObject(self, &arrayAssocationKey, newValue, objc_AssociationPolicy.OBJC_ASSOCIATION_ASSIGN)
}
}
}

但是编译器调用错误`Array does not符合协议(protocol)AnyObject

是否有任何解决方法来设置此属性?

最佳答案

扩展所有数组以添加 ID 属性似乎有点过分了。我认为你最好创建一个包含 ID 和反馈数组的类,如下所示:

    class feedbackCollection {
var ID: String?
var feedbacks: [feedback]?
}

编辑:

对此解决方案进行更通用的尝试可能对您有用:

class IDArray<T> {
var ID: String
var items: [T]
init(ID: String, items: [T]) {
self.ID = ID
self.items = items
}
}

它会像这样使用:

let ints = IDArray(ID: "1", items: [1, 2, 4])

let strings = IDArray(ID: "2", items: ["test", "this", "thing"])

strings.ID = "8"
strings.items.append("more")

关于ios - 如何将计算属性添加到 Array<T>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31216993/

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