2016-09-18 2 views
-1

1. Почему получить исключение при запуске программы в быстрый XCode8NSKeyedArchiver.archivedData не может архивировать NSObject (СВИФТ с Xcode 8)

2. Сообщение об ошибке

2016-09-17 21 : 59: 56.370839 MyCalendar [1032: 29793] Подсистема: com.apple.UIKit, категория: HIDEventFiltered, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 1, privacy_setting: 2, enable_private_data: 0 2016-09-17 21: 59: 56.371720 MyCalendar [1032: 29793] подсистема: com.apple.UIKit, категория: HIDEvent Входящий, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 1, privacy_setting: 2, enable_private_data: 0 2016-09-17 21: 59: 56.390463 MyCalendar [ 1032: 29782] Подсистема: com.apple.BaseBoard, категория: MachPort, enable_level: 1, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 0, enable_private_data: 0 2016-09-17 21: 59: 56.412030 MyCalendar [1032: 29746] Подсистема: com.apple.UIKit, категория: StatusBar, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 1, privacy_setting: 2, enable_private_data: 0 2016-09-17 21: 59: 56.509619 MyCalendar [1032: 29746] Подсистема: com.apple.BackBoardServices.fence, категория: Приложение, enable_level: 1, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_sympto ms: 0, enable_oversize: 0, privacy_setting: 0, enable_private_data: 0 2016-09-17 21: 59: 57.215510 MyCalendar [1032: 29746] Подсистема: com.apple.UIKit, категория: Touch, enable_level: 0, persist_level: 0, default_ttl: 1, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 1, privacy_setting: 2, enable_private_data: 0 2016-09-17 21: 59: 57.216554 MyCalendar [1032: 29746] subsystem: com. apple.UIKit, категория: Жест, enable_level: 0, persist_level: 0, default_ttl: 1, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 1, privacy_setting: 2, enable_private_data: 0 2016-09-17 21 : 59: 57.218087 MyCalendar [1032: 29746] Подсистема: com.apple.UIKit, категория: GestureEnvironment, enable_level: 0, persist_level: 0, default_ttl: 1, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 1, privacy_setting: 2, enable_private_data: 0 2016-09-17 21 : 59: 57.218933 MyCalendar [1032: 29746] Подсистема: com.apple.UIKit, категория: GestureExclusion, enable_level: 0, persist_level: 0, default_ttl: 1, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 1, privacy_setting: 2, enable_private_data: 0 2-5 2016-09-17 22: 00: 00.519 MyCalendar [1032: 29746] - [MyCalendar.CalendarEvent encodeWithCoder:]: непризнанный селектор, отправленный в экземпляр 0x78e68120 2016-09-17 22 : 00: 00,547 MyCalendar [1032: 29746] * Нагрузочное приложение из-за неперехваченное исключение 'NSInvalidArgumentException', причина: '- [MyCalendar.CalendarEvent encodeWithCoder]: непризнанный селектор направил к экземпляру 0x78e68120' * Первого стеку кинуть вызов: ( 0 CoreFoundation 0x00b95212 exceptionPreprocess + 1 94 1 libobjc.A.dylib 0x0064de66 objc_exception_throw + 52 2 CoreFoundation 0x00c0e3dc - [NSObject (NSObject) doesNotRecognizeSelector:] + 172 3 CoreFoundation 0x00b1434c ___forwarding_ + тысяче пятьдесят-два 4 CoreFoundation 0x00b13f0e _CF_forwarding_prep_0 + 14 5 Фонд 0x001ef60a _encodeObject + 1304 6 Фонд 0x001ef0ea - [NSKeyedArchiver encodeObject : forKey:] + 193 7 Фонд 0x0022548a + [NSKeyedArchiver archivedDataWithRootObject:] + 172 8 MyCalendar 0x000d47d2 _TFC10MyCalendar28SingleDayTableViewController16addButtonPressedfT6senderCSo15UIBarButtonItem_T_ + 1042 9 MyCalendar 0x000d4dad _TToFC10MyCalendar28SingleDayTableViewController16addButtonPressedfT6senderCSo15UIBar ButtonItem_T_ + 61 10 libobjc.A.dylib 0x00663200 - [NSObject performSelector: withObject: withObject:] + 63 11 UIKit 0x00f9e81e - [UIApplication sendAction: до: от: forEvent:] + 91 12 UIKit 0x01447f00 - [UIBarButtonItem (UIInternal) _sendAction: withEvent:] + 186 13 libobjc.A.dylib 0x00663200 - [NSObject performSelector: withObject: withObject:] + 63 14 UIKit 0x00f9e81e - [UIApplication sendAction: до: от: forEvent:] + 91 15 UIKit 0x00f9e7b8 - [UIApplication sendAction: toTarget: fromSender: forEvent:] + 41 16 UIKit 0x0114d32b - [UIControl sendAction: до: forEvent:] + 64 17 UIKit 0x0114d693 - [UIControl _sendActionsForEvents: withEvent:] + 462 18 UIKit 0x011 4d84a - [UIControl _sendActionsForEvents: withEvent:] + 901 19 UIKit 0x0114c518 - [UIControl touchesEnded: withEvent:] + 717 20 UIKit 0x01014fac - [UIWindow _sendTouchesForEvent:] + 3063 21 UIKit 0x010167e7 - [UIWindow SendEvent:] + 4312 22 UIKit 0x00fbd198 - [UIApplication SendEvent:] + 395 23 UIKit 0x018646cd dispatchPreprocessedEventFromEventQueue + 3706 24 UIKit 0x0185c7af __handleEventQueue + 5345 25 CoreFoundation 0x00b34cbf __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION + 15 26 CoreFoundation 0x00b18df7 __CFRunLoopDoSources0 + 519 27 CoreFoundation 0x00b18284 __CFRunLoo pRun + 1124 28 CoreFoundation 0x00b17bab CFRunLoopRunSpecific + 395 29 CoreFoundation 0x00b17a0b CFRunLoopRunInMode + 123 30 GraphicsServices 0x04dd1b4c GSEventRunModal + 177 31 GraphicsServices 0x04dd19c7 GSEventRun + 80 32 UIKit 0x00f9c7fb UIApplicationMain + 148 33 MyCalendar 0x000d7431 основной + 145 34 libdyld.dylib 0x03f69799 начать + 1 ) LibC++ abi.dylib: оканчивающиеся неперехваченного исключением типа NSException

3. Исходный код

......

пусть се = CalendarEvent (withTitle: NEWEVENT, andDateString: defaultKey)

пусть encodedCE = NSKeyedArchiver.archivedData (withRootObject: се)

..... ,

// класс CalendarEvent Фонд импорта

класс CalendarEvent: NSObject { название вар: String вар 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") 
} 

}

4. Попробуйте с другим объектом

Для параметра withRootObject, в то время как String (вместо CalendarEvents), все работает хорошо.

ответ

0

пожалуйста сошлитесь следующая

  1. сначала открыть & Редактирование схемы
  2. Выберите вкладку Аргументы
  3. Add/Set OS_ACTIVITY_MODE = отключить в переменной окружения
  4. Закрыть и запустить

Проверьте следующую ссылку для получения более подробной информации.

https://twitter.com/rustyshelf/status/775505191160328194

Смежные вопросы