>

'AnyArrayBox'를 직렬화하는 동안 세그먼트 오류가 나타납니다

  1. 런닝 패스 # 0 SILModuleTransform "SerializeSILPass"동안.
  2. 'AnyArrayBox'를 직렬화하는 동안 (모듈 '모듈') 0 스위프트 0x000000010d7abeb3 PrintStackTraceSignalHandler (void *) + 51 신속한 1 개 0x000000010d7ab686 SignalHandler (int) + 358 2 libsystem_platform.dylib 0x00007fff76c31b5d _sigtramp + 29

AnyArray 구조체는 다음과 같습니다

   struct AnyArray<Element>: RandomAccessCollection {
    typealias Index = Int
    private let box: AnyArrayBase<Element>
    init<Concrete: RandomAccessCollection>(_ concrete: Concrete) where Concrete.Element == Element, Concrete.Indices == Indices {
        box = AnyArrayBox(concrete)
    }
    var startIndex: Int { return box.startIndex }
    var endIndex: Int { return box.endIndex }
    func index(after i: Int) -> Int {
        return box.index(after: i)
    }
    subscript(position: Index) -> Element {
        return box[position]
    }
}

그리고 거기에 사용되는 다른 두 사람

private class AnyArrayBase<Element>: RandomAccessCollection {
    init() {
        guard type(of: self) != AnyArrayBase.self else {
            fatalError("_AnyArrayBase<Element> is an abstract class, it can not be created; create subclass instance instead")
        }
    }
    typealias Index = Int
    var startIndex: Int { fatalError("Must override") }
    var endIndex: Int { fatalError("Must override") }
    func index(after i: Int) -> Int {
        fatalError("Must override")
    }
    subscript(position: Index) -> Element {
        fatalError("Must override")
    }
}
private final class AnyArrayBox<Concrete: RandomAccessCollection>: AnyArrayBase<Concrete.Element> where Concrete.Indices == AnyArrayBase<Concrete.Element>.Indices {
    private let concrete: Concrete
    init(_ concrete: Concrete) {
        self.concrete = concrete
    }
    override var startIndex: Int { return concrete.startIndex }
    override var endIndex: Int { return concrete.endIndex }
    override func index(after i: Int) -> Int {
        return concrete.index(after: i)
    }
    override subscript(position: Index) -> Element {
        return concrete[position]
    }
}

어떻게 고칠 수 있습니까? 추천 사항이 있나요?


  • 답변 # 1

    Xcode 11.0 (11A420a)으로 옮길 때도 같은 문제가있었습니다 그것은 구조의 일부로 튜플을 가지고있는 줄을 가리 켰습니다.

    var dim_values : (dim1:String?,dim2:String?,dim3:String?)
    
    

    다른 구조로 변경하여 문제를 해결했습니다.

  • 이전 sql - 조건에서 모든 행을 선택하고 조인 정보를 선택하는 방법
  • 다음 c++ - -lm lib를 찾아 CMake에 포함시키는 방법은 무엇입니까?