2014-10-28 7 views
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 하위 클래스를 표시하는 것과 관련된 몇 가지 규칙이 설명서에 숨겨져 있습니까? 아니면 그냥 컴파일러/링커의 버그입니까?

+0

Xcode 6.1로 업그레이드 한 경우에만 동일한 문제가 발생합니다. – CPD

답변

0

이 문제는 Xcode 6.3 베타 버전에서 해결되었습니다.