NSCoder: selector no reconocido enviado a la instancia

Por lo tanto, soy nuevo en iOS y he estado usando tutoriales en línea para aprender la plataforma. Los tutoriales que estoy usando están creando aplicaciones con iOS 9 mientras uso iOS 10. Por eso me he encontrado con el problema del título. Aquí hay un código:

CalendarEvent.swift

class CalendarEvent : NSObject {
var title : String
var dateString : String

init(withTitle t : String, andDateString ds : String) {
    title = t
    dateString = ds
}

init(withCoder coder : NSCoder) {
    dateString = coder.decodeObject(forKey: "dateString") as! String
    title = coder.decodeObject(forKey: "title") as! String
}

func encodeWithCoder(coder : NSCoder) {
    coder.encode(dateString, forKey: "dateString")
    coder.encode(title, forKey: "title")
}

}

El siguiente fragmento proviene de otra clase donde se manifiesta el error:

SingleDayTableViewController.swift

@IBAction func addButtonPressed(sender : UIBarButtonItem) {
    let newEvent = "Test Event \(events.count + 1)"

    let defaultsKey = "\(monthNumber) - \(dayNumber)"
    let ce = CalendarEvent(withTitle: newEvent, andDateString: defaultsKey)

    let encodedCE = NSKeyedArchiver.archivedData(withRootObject: ce) // This line breaks the program.
    events.append(encodedCE as AnyObject)

    UserDefaults.standard.set(events, forKey: defaultsKey)
    UserDefaults.standard.synchronize()

    tableView.reloadData()
}

No estoy seguro de por qué sucede esto, pero espero que alguien aquí pueda aclararme las cosas. Incluiré el seguimiento de la pila a continuación.

2017-02-08 13:57:49.026 myCalendar[80042:1651988] -[myCalendar.CalendarEvent encodeWithCoder:]: unrecognized selector sent to instance 0x600000073440
2017-02-08 13:57:49.059 myCalendar[80042:1651988] 
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[myCalendar.CalendarEvent encodeWithCoder:]: unrecognized selector sent to instance 0x600000073440'
*** First throw call stack:
(
    0   CoreFoundation                      0x00000001104b6d4b __exceptionPreprocess + 171
    1   libobjc.A.dylib                     0x000000010ff1821e objc_exception_throw + 48
    2   CoreFoundation                      0x0000000110526f04 -[NSObject(NSObject) doesNotRecognizeSelector:] + 132
    3   CoreFoundation                      0x000000011043c005 ___forwarding___ + 1013
    4   CoreFoundation                      0x000000011043bb88 _CF_forwarding_prep_0 + 120
    5   Foundation                          0x000000010fa4fcac _encodeObject + 1263
    6   Foundation                          0x000000010fa84a22 +[NSKeyedArchiver archivedDataWithRootObject:] + 156
    7   myCalendar                          0x000000010f923504 _TFC10myCalendar28SingleDayTableViewController16addButtonPressedfT6senderCSo15UIBarButtonItem_T_ + 980
    8   myCalendar                          0x000000010f9239aa _TToFC10myCalendar28SingleDayTableViewController16addButtonPressedfT6senderCSo15UIBarButtonItem_T_ + 58
    9   UIKit                               0x00000001108dc8bc -[UIApplication sendAction:to:from:forEvent:] + 83
    10  UIKit                               0x0000000110d1e4a1 -[UIBarButtonItem(UIInternal) _sendAction:withEvent:] + 149
    11  UIKit                               0x00000001108dc8bc -[UIApplication sendAction:to:from:forEvent:] + 83
    12  UIKit                               0x0000000110a62c38 -[UIControl sendAction:to:forEvent:] + 67
    13  UIKit                               0x0000000110a62f51 -[UIControl _sendActionsForEvents:withEvent:] + 444
    14  UIKit                               0x0000000110a630db -[UIControl _sendActionsForEvents:withEvent:] + 838
    15  UIKit                               0x0000000110a61e4d -[UIControl touchesEnded:withEvent:] + 668
    16  UIKit                               0x000000011094a545 -[UIWindow _sendTouchesForEvent:] + 2747
    17  UIKit                               0x000000011094bc33 -[UIWindow sendEvent:] + 4011
    18  UIKit                               0x00000001108f89ab -[UIApplication sendEvent:] + 371
    19  UIKit                               0x00000001219f2481 -[UIApplicationAccessibility sendEvent:] + 93
    20  UIKit                               0x00000001110e572d __dispatchPreprocessedEventFromEventQueue + 3248
    21  UIKit                               0x00000001110de463 __handleEventQueue + 4879
    22  CoreFoundation                      0x000000011045b761 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
    23  CoreFoundation                      0x000000011044098c __CFRunLoopDoSources0 + 556
    24  CoreFoundation                      0x000000011043fe76 __CFRunLoopRun + 918
    25  CoreFoundation                      0x000000011043f884 CFRunLoopRunSpecific + 420
    26  GraphicsServices                    0x0000000114b45a6f GSEventRunModal + 161
    27  UIKit                               0x00000001108dac68 UIApplicationMain + 159
    28  myCalendar                          0x000000010f924caf main + 111
    29  libdyld.dylib                       0x0000000113bb568d start + 1
    30  ???                                 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException

Respuestas a la pregunta(1)

Su respuesta a la pregunta