2015-03-06 17 views
6

tôi nhận được lỗi này trong nhanh chóngSwift: Enum 'không thể được xây dựng bởi vì nó không có initializers truy cập' không thể được xây dựng

'BlockColor' vì nó không có thể tiếp cận initializers

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)))! 
} 
} 

Tôi gặp lỗi trong dòng này

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

Tôi đã xem lại mã của mình nhiều lần nhưng tôi không thể tìm thấy lỗi ở đâu là lỗi

+1

Lạ. Mã của bạn biên dịch không có lỗi trong các dự án Xcode 6.1.1 và Xcode 6.3 beta 2 của tôi. –

Trả lời

0

giải quyết vấn đề :) có vẻ như vấn đề xảy ra với Xcode 6.0 của tôi. mã hoạt động tốt trong Xcode 6.2 beta.

+1

Sự cố về phiên bản Swift? –

9

Tôi gặp lỗi tương tự. Sai lầm của tôi là tôi không đề cập đến bất kỳ kiểu trả về (Int) nào cho phương pháp enum (enum BlockColor: Int). sau khi khởi tạo kiểu trả về Int. Công trình của nó bây giờ.

+0

Tôi yêu thích StackOverflow. –

Các vấn đề liên quan