gpt4 book ai didi

ios - 访问最终类的@NSManaged 属性时出现 Swift 链接器错误

转载 作者:搜寻专家 更新时间:2023-11-01 05:42:29 27 4
gpt4 key购买 nike

我在一个更大的项目中遇到问题,并将其归结为这个简单的代码。出于演示目的,我在 Model.swift 文件中创建了一个新的 Swift 项目:

import Foundation
import CoreData

class A: NSManagedObject {
@NSManaged var foo: String
}

final class B: A {
@NSManaged var bar: String
}

func testB(obj: B) -> String {
return "\(obj.foo) \(obj.bar)"
}

这可以编译,但是链接器提示访问 bar:

Undefined symbols for architecture armv7:
"__TFC21TestFinalManagedClass1Bg3barSS", referenced from:
__TF21TestFinalManagedClass5testBFCS_1BSS in Model.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

@NSManaged varfinal class 中的组合似乎是导致错误的原因。 (包含从 A 继承的类是为了证明 foo 属性可在 B 类型的对象上访问,但不是 bar 属性。)

我使用的是 Xcode 版本 6.1 (6A1052d)。

关于将 NSManagedObject 子类标记为 final 的文档中是否隐藏了一些规则?或者这只是编译器/链接器中的错误?

最佳答案

此问题已在 Xcode 6.3 beta 中得到解决。

关于ios - 访问最终类的@NSManaged 属性时出现 Swift 链接器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26616893/

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