2016-05-05 6 views
5

मैं इस तरह कुछ करना चाहता हूँ:क्या RealmSwift में enums का उपयोग करना संभव है?

enum WeekDay { 
    case Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday 
} 

class Person: Object { 

    dynamic var birthday: WeekDay? = .Monday 
    dynamic var id: String? = nil 
    dynamic var birthdayRaw: String? = nil 

    override static func primaryKey() -> String? { 
     return "id" 
    } 
} 

लेकिन, मैं एक त्रुटि हो रही है:

Property cannot be marked dynamic because its type cannot be represented in Objective-C

मैं इस का समाधान कर सकते हैं? किसी भी मदद के लिए धन्यवाद।

उत्तर

8

दायरे का कोई सीधा तरीका नहीं है। Github issue.

लेकिन आप इस चाल

enum WeekDay: String { 
    case Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday 
} 

class Person: Object { 
    private var _day: WeekDay? 
    var birthday: WeekDay? { 
     get { 
      if let resolTypeRaw = birthdayRaw { 
       _day = WeekDay(rawValue: resolTypeRaw) 
       return _day 
      } 
      return .Sunday 
     } 
     set { 
      birthdayRaw = newValue?.rawValue 
      _day = newValue 
     } 
    } 

    dynamic var id: String? = nil 
    dynamic var birthdayRaw: String? = nil 

    override static func primaryKey() -> String? { 
     return "id" 
    } 
} 
+0

विचार कर सकते हैं या आप के साथ '@ objc' enum प्रकार परिभाषा चिह्नित कर सकते हैं कि यह एक' Int' enum है। – blwinters

संबंधित मुद्दे