2014-07-22 45 views
9

neden hata alıyorum:Enum genel sınıfına eklediğimde Xcode yapı hatası mı? Ben jenerik sınıfa enum eklerken

class TestClass<T>{ 
    enum TestEnum { 
     case test 
    } 
} 

Hata:

1. While type-checking 'ExampleTest' at /Users/xxx/xxx/xx/xx/ExampleTest.swift:11:1 
<unknown>:0: error: unable to execute command: Segmentation fault: 11 
<unknown>:0: error: swift frontend command failed due to signal (use -v to see invocation) 
Command /Applications/Xcode6-Beta3 2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift failed with exit code 254 

Ama bunu yaparken bir hata alamadım:

class TestClass{ 
    enum TestEnum { 
     case test 
    } 
} 

veya bu:

+2

İlk iki örneğiniz tam olarak aynıdır - aynı snippet'i iki kez göndermiş olabilirsiniz? – weltraumpirat

+0

Genel sınıf ve iç içe enum birleşimi ile derleyici hata. [Bir hata raporunu dosyalayın] (https://bugreport.apple.com/) ve şimdi bir geçici çözüm olarak numaralandırmanın yerini al. –

+0

@weltraumpirat Teşekkürler, örneği düzeltildi. – Jimmy

cevap

20

Genel bir içeride herhangi bir tür yuvalayamazsınız ve bunun tersi de geçerlidir.

ve

class Outer { 
    class Inner<T> { } 
} 

ve hatta

class Outer<T> { 
    class Inner<T> { } 
} 

Elma millet explained nedeni: başka deyişle, sınıflar, yapılar ve çeteleler bu gibi şeyler yapamaz kısıtlama için:

It's an implementation limitation. We'll remove the restriction once our compiler and runtime are able to correctly handle types nested in generic contexts.

P.S. Üzgünüm cevabımı bu kadar geciktirdim ama sorun hala var (XCode 6.2).

Bu arada çok benzer bir question vardı.

+3

Swift 3.1 ve XCode 8.3.2 şimdi bunu destekliyor –