2
큰 프로젝트에서 문제가 발생하여 간단한 코드로 끝내 었습니다. 데모 목적을 위해, 나는 Model.swift 파일에 다음과 같이 새로운 스위프트 프로젝트를 만들었습니다최종 클래스의 @NS 관리 속성에 액세스 할 때 신속한 링커 오류가 발생했습니다.
이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 var
은 오류의 원인 인 것 같습니다. (A
에서 클래스 상속은 bar
특성을 foo
속성 유형 B
의 개체에 액세스 할 수 있는지 보여주기 위해 포함되어 있지만되지 않습니다.)
것은 내가 엑스 코드 버전 6.1 (6A1052d)를 사용하고 있습니다.
최종적으로 NSManagedObject
하위 클래스를 표시하는 것과 관련된 몇 가지 규칙이 설명서에 숨겨져 있습니까? 아니면 그냥 컴파일러/링커의 버그입니까?
Xcode 6.1로 업그레이드 한 경우에만 동일한 문제가 발생합니다. – CPD