gpt4 book ai didi

swift - 在 Swift 中编写自定义访问器方法

转载 作者:可可西里 更新时间:2023-11-01 01:03:10 25 4
gpt4 key购买 nike

我想将核心数据动态生成的访问器方法重写为 can be done in Objective-C .

例如,当Teamnamenil时,返回其第一个Player名称 代替。

类似于:

class Team: NSManagedObject {

@NSManaged var name: String { // Error: @NSManaged not allowed on computed properties
get
{
self.willAccessValueForKey("name")
var teamName = self.primitiveValueForKey("name")
self.didAccessValueForKey("name")

return teamName ?? (self.players.firstObject as! Player).name
}
}
@NSManaged var breakPoints: NSOrderedSet
@NSManaged var gamesWon: NSOrderedSet
@NSManaged var matches: NSOrderedSet
@NSManaged var matchesWon: NSOrderedSet
@NSManaged var players: NSOrderedSet
@NSManaged var pointsWon: NSOrderedSet
@NSManaged var setsWon: NSOrderedSet
}

在保持存储值不变的同时,透明地更改已访问 Teamname 的对象读取的值。

最佳答案

您不会在 Swift 中覆盖核心数据访问器。相反,创建单独的计算属性。

@NSManaged var actualName: String
var name: String {
get {
self.willAccessValueForKey("actualName")
let teamName = self.primitiveValueForKey("actualName")
self.didAccessValueForKey("actualName")

return teamName ?? (self.players.first as! Player).name
}
set {
name = newValue
// omitting KVC markers here
actualName = newValue
}
}

关于swift - 在 Swift 中编写自定义访问器方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33673751/

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