SwiftData 类属性命名问题与变音符

SwiftData Class property naming issue with Umlaut characters

提问人:Serafin 提问时间:11/11/2023 最后编辑:soundflixSerafin 更新时间:11/13/2023 访问量:52

问:

我在使用 SwiftData 类时遇到了一个有趣的问题,该类涉及包含变音符(如 Ä、Ü 和 Ö)的属性名称。例如,如果我将属性命名为 parameterä,它似乎会在我的应用程序中触发意外崩溃,并显示如下错误消息:

线程 1:“*** -[__NSPlaceholderArray initWithObjects:count:]:尝试从 objects[xx]] 插入 nil 对象”。

这是我的例子:

@Model
class Ergebnisse {
    var id: UUID 
    var datum: Date
    var läckergegessen: Bool
    
    init(id: UUID, datum: Date, läckergegessen: Bool) {
        self.id = id
        self.datum = datum
        self.läckergegessen = läckergegessen
    }
}

经过仔细检查,似乎在属性名称中使用带有变音符的字符可能会导致问题。有没有人遇到过类似的问题?你能为我解释一下这个问题吗?我无法理解它,直到我找出错误消息的原因,我感到非常沮丧。

字符 swift-data

评论

0赞 Larme 11/11/2023
我倾向于说它与 Objective-C 的局限性有关。Swift 允许更多的“字符”来命名 vars/func,但 Objective-C 不允许。而 SwiftData 是在 CoreData 之上构建的,CoreData 是 Objective-C(或者曾经并且仍然兼容),因此会出现“Objective-C”错误。喜欢只使用 a-z 和 0-9、“_”等字符,避免在命名变量时偏离它们。我认为用“奇怪”字符命名 var 是坏习惯,好像明天你需要用另一种语言写作,不要习惯。
1赞 vadian 11/11/2023
题外话:正确的拼写是 leckergegessen 😉
0赞 Joakim Danielson 11/11/2023
是的,对于 Objective-C 和 Core Data,您不能在 Core Data 模型的 Xcode 模型编辑器中的实体和属性名称中使用变音符号。

答: 暂无答案