2014-06-10 22 views
13

Tôi đang viết lại ứng dụng Objective C của mình trong Swift, và tôi có một câu hỏi về enum's. Trong mục tiêu C bạn sẽ làm;typedef enum trong swift

typedef enum { 
stopped, 
running 
} TimerState; 

trả về lỗi, Consecutive Declarations on a line must be separated by ‘;’ — Expected declaration — Expected identifier in enum declaration. Tôi đọc một số tài liệu về điều này và thấy rằng bạn không đặt typedef trước khi của enum nữa. Vì vậy, trong nhanh chóng tôi nghĩ rằng nó sẽ là:

enum { 
stopped, 
running 
} TimerState; 

Nhưng tôi không biết phải làm gì với TimerState, không có đi vào bên trong dấu ngoặc nhọn? Tôi làm gì. Không có bình luận ass thông minh, xin vui lòng. Cảm ơn trước.

Trả lời

43

Đó không phải là cách bạn khai báo enum trong Swift. Bạn không thể chỉ đơn giản là liệt kê các giá trị như bạn có thể trong C. Một enum có thể được thực hiện trong C với các kỹ thuật sau đây.

enum TimerState { 
    stopped, 
    running 
}; 

Nhanh chóng, bạn phải sử dụng từ khóa case.

enum TimerState { 
    case stopped 
    case running 
} 

Đối với typedef, có một typealias trong nhanh chóng.

typealias SomeNewEnum = TimerState 

Edit: Nếu bạn muốn gán một kiểu thô để enum, bạn có thể làm như vậy.

enum TimerState: Int { 
     case stopped = 0 
     case running // 1 
} 
+0

Cảm ơn bạn rất nhiều. –

+0

Vâng, tôi đã làm !! Tôi thực sự có một câu hỏi khác, chúng ta phải thêm các thuộc tính giống như chúng ta làm trong thuộc tính @ trong Objective C? Ví dụ: thuộc tính (nonatomic, strong) ... làm thế nào để chúng tôi làm điều đó cho IBOutlets trong Swift? Tôi đã nói rằng chúng tôi không phải làm nhưng tôi không biết. –

+3

@ istx25 Bạn nên đặt một câu hỏi khác thay vì hỏi ở đây trong phần bình luận. Nó sẽ nhận được nhiều sự chú ý và câu trả lời tốt hơn. –

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