2015-03-06 17 views
6

otrzymuję ten błąd w SwiftSwift: Enum „nie może być wykonana, ponieważ nie ma dostępnych inicjalizatory” nie może być skonstruowana

„BlockColor”, ponieważ nie ma dostępnych inicjatorów

import Foundation 
import SpriteKit 

let NumberOfColors: UInt32 = 6 

enum BlockColor: Int, Printable { 

case Blue = 0, Orange, Purple, Red, Teal, Yellow 

var spriteName: String { 
    switch self { 
    case .Blue: 
     return "blue" 
    case .Orange: 
     return "orange" 
    case .Purple: 
     return "purple" 
    case .Red: 
     return "red" 
    case .Teal: 
     return "teal" 
    case .Yellow: 
     return "yellow" 
     } 
} 

var description: String { 
    return self.spriteName 
} 

static func random() -> BlockColor { 
    return BlockColor(rawValue:Int(arc4random_uniform(NumberOfColors)))! 
} 
} 

Mam błąd w tej linii

return BlockColor(rawValue:Int(arc4random_uniform(NumberOfColors)))! 

Mam wielokrotnie sprawdzać swój kod, ale nie mogłem znaleźć błędu:

+1

Dziwne. Twój kod kompiluje się bezbłędnie w moich projektach beta Xcode 6.1.1 i Xcode 6.3 beta 2. –

Odpowiedz

0

problem rozwiązany :) wygląda na to, że problem był z moim Xcode 6.0. kod działa poprawnie w wersji beta Xcode 6.2.

+1

Problem wersji Swift? –

9

Mam ten sam błąd. Mój błąd polegał na tym, że nie wspomniałem o żadnym typie zwrotu (Int) dla metody enum (enum BlockColor: Int). po inicjalizacji typu zwrotu Int. Teraz działa.

+0

Mężczyzna, czy kocham StackOverflow. –

Powiązane problemy