iOS - Editing Schedule on Joined Experiment with multiple signal times throws exception
Join an experiment with multiple signal times, e.g. Sneezy 3.
Tap Edit on Joined page next to experiment title. Tap edit schedule Tap first schedule time and change to new time. Tap Done. Note app crashes
Here is the stack trace:
2016-08-03 01:39:44.332 Paco[67807:611770] DDFileLogManagerDefault: logsDirectory: /Users/bobevans/Library/Developer/CoreSimulator/Devices/42A21C21-67DB-4059-933B-72046C1B085D/data/Containers/Data/Application/6D15EF67-0842-4BF2-AB5C-524308A1C36F/Library/Caches/Logs 2016-08-03 01:39:44.334 Paco[67807:611770] DDFileLogManagerDefault: sortedLogFileNames: ( "com.pacoapp.Paco 2016-08-03 08-28.log" ) 2016-08-03 01:39:44.334 Paco[67807:611770] DDFileLogManagerDefault: Responding to configuration change: maximumNumberOfLogFiles 2016-08-03 01:39:44.334 Paco[67807:611807] DDLogFileManagerDefault: deleteOldLogFiles 2016-08-03 01:39:44.358 Paco[67807:611770] Pixate Freestyle v2.1.4 (API 2) - Build 2014/06/23 2016-08-03 01:39:44.414 Paco[67807:611770] Fetched an email from Keychain 2016-08-03 01:39:44.417 Paco[67807:611770] Should refresh. Thread: <NSThread: 0x7aa54280>{number = 1, name = main} 2016-08-03 01:39:44:421 Paco[67807:70b] ========== Application applicationDidBecomeActive ========== 2016-08-03 01:39:44.422 Paco[67807:611826] DDLogFileInfo: Renaming file: 'com.pacoapp.Paco 2016-08-03 08-28.log' -> 'com.pacoapp.Paco 2016-08-03 08-28.archived.log' 2016-08-03 01:39:44.423 Paco[67807:611826] DDLogFileManagerDefault: Creating new log file: com.pacoapp.Paco 2016-08-03 08-39.log 2016-08-03 01:39:44.424 Paco[67807:611826] DDLogFileManagerDefault: deleteOldLogFiles 2016-08-03 01:39:44.425 Paco[67807:611826] DDFileLogger: scheduleTimerToRollLogFileDueToAge 2016-08-03 01:39:44.426 Paco[67807:611826] DDFileLogger: logFileCreationDate: 2016-08-03 08:39:44 +0000 2016-08-03 01:39:44.426 Paco[67807:611826] DDFileLogger: logFileRollingDate : 2016-08-05 08:39:44 +0000 2016-08-03 01:39:44.443 Paco[67807:611770] button text attributes only respected for UIControlStateNormal, UIControlStateSelected, UIControlStateFocused, and UIControlStateDisabled. state = 1 is interpreted as UIControlStateSelected. 2016-08-03 01:39:44.444 Paco[67807:611770] button text attributes only respected for UIControlStateNormal, UIControlStateSelected, UIControlStateFocused, and UIControlStateDisabled. state = 1 is interpreted as UIControlStateSelected. 2016-08-03 01:39:44.447 Paco[67807:611770] button text attributes only respected for UIControlStateNormal, UIControlStateSelected, UIControlStateFocused, and UIControlStateDisabled. state = 1 is interpreted as UIControlStateSelected. 2016-08-03 01:39:44.447 Paco[67807:611770] button text attributes only respected for UIControlStateNormal, UIControlStateSelected, UIControlStateFocused, and UIControlStateDisabled. state = 1 is interpreted as UIControlStateSelected. 2016-08-03 01:39:44.449 Paco[67807:611770] button text attributes only respected for UIControlStateNormal, UIControlStateSelected, UIControlStateFocused, and UIControlStateDisabled. state = 1 is interpreted as UIControlStateSelected. 2016-08-03 01:39:44.449 Paco[67807:611770] button text attributes only respected for UIControlStateNormal, UIControlStateSelected, UIControlStateFocused, and UIControlStateDisabled. state = 1 is interpreted as UIControlStateSelected. 2016-08-03 01:39:44.451 Paco[67807:611770] button text attributes only respected for UIControlStateNormal, UIControlStateSelected, UIControlStateFocused, and UIControlStateDisabled. state = 1 is interpreted as UIControlStateSelected. 2016-08-03 01:39:44.452 Paco[67807:611770] button text attributes only respected for UIControlStateNormal, UIControlStateSelected, UIControlStateFocused, and UIControlStateDisabled. state = 1 is interpreted as UIControlStateSelected. 2016-08-03 01:39:44.478 Paco[67807:611770] error excoeption ERROR: ActionTrigger actions should contain at least one action 2016-08-03 01:39:44.481 Paco[67807:611770] error excoeption ERROR: ActionTrigger actions should contain at least one action 2016-08-03 01:39:44.483 Paco[67807:611770] error excoeption ERROR: ActionTrigger actions should contain at least one action 2016-08-03 01:39:44.659 Paco[67807:611770] auth:FinishedRefreshWithFetcher:error done. Thread: <NSThread: 0x7aa54280>{number = 1, name = main} 2016-08-03 01:39:44.662 Paco[67807:611770] GTMHTTPFetcher logging to "/Users/bobevans/Library/Developer/CoreSimulator/Devices/42A21C21-67DB-4059-933B-72046C1B085D/data/Containers/Data/Application/6D15EF67-0842-4BF2-AB5C-524308A1C36F/GTMHTTPDebugLogs" 2016-08-03 01:39:46.402 Paco[67807:611770] -[PAScheduleTrigger getName]: unrecognized selector sent to instance 0x7ad5fc70 2016-08-03 01:39:46.403 Paco[67807:611770] error excoeption -[PAScheduleTrigger getName]: unrecognized selector sent to instance 0x7ad5fc70 2016-08-03 01:39:46.403 Paco[67807:611770] -[PASchedule getName]: unrecognized selector sent to instance 0x79ed3dc0 2016-08-03 01:39:46.403 Paco[67807:611770] error excoeption -[PASchedule getName]: unrecognized selector sent to instance 0x79ed3dc0 2016-08-03 01:39:46.404 Paco[67807:611770] -[PASignalTime getName]: unrecognized selector sent to instance 0x79ed6310 2016-08-03 01:39:46.404 Paco[67807:611770] error excoeption -[PASignalTime getName]: unrecognized selector sent to instance 0x79ed6310 2016-08-03 01:39:46.419 Paco[67807:611770] -[PAScheduleTrigger getName]: unrecognized selector sent to instance 0x7aa23fd0 2016-08-03 01:39:46.419 Paco[67807:611770] error excoeption -[PAScheduleTrigger getName]: unrecognized selector sent to instance 0x7aa23fd0 2016-08-03 01:39:46.420 Paco[67807:611770] -[PASchedule getName]: unrecognized selector sent to instance 0x7aa1e670 2016-08-03 01:39:46.420 Paco[67807:611770] error excoeption -[PASchedule getName]: unrecognized selector sent to instance 0x7aa1e670 2016-08-03 01:39:46.420 Paco[67807:611770] -[PASignalTime getName]: unrecognized selector sent to instance 0x7aa1dff0 2016-08-03 01:39:46.420 Paco[67807:611770] error excoeption -[PASignalTime getName]: unrecognized selector sent to instance 0x7aa1dff0 2016-08-03 01:39:46.421 Paco[67807:611770] -[PAScheduleTrigger getName]: unrecognized selector sent to instance 0x79f8d550 2016-08-03 01:39:46.421 Paco[67807:611770] error excoeption -[PAScheduleTrigger getName]: unrecognized selector sent to instance 0x79f8d550 2016-08-03 01:39:46.422 Paco[67807:611770] -[PASchedule getName]: unrecognized selector sent to instance 0x79f77e20 2016-08-03 01:39:46.422 Paco[67807:611770] error excoeption -[PASchedule getName]: unrecognized selector sent to instance 0x79f77e20 2016-08-03 01:39:46.422 Paco[67807:611770] -[PASignalTime getName]: unrecognized selector sent to instance 0x79f916a0 2016-08-03 01:39:46.422 Paco[67807:611770] error excoeption -[PASignalTime getName]: unrecognized selector sent to instance 0x79f916a0 2016-08-03 01:39:46.422 Paco[67807:611770] -[PASignalTime getName]: unrecognized selector sent to instance 0x79f93440 2016-08-03 01:39:46.423 Paco[67807:611770] error excoeption -[PASignalTime getName]: unrecognized selector sent to instance 0x79f93440 2016-08-03 01:39:46.423 Paco[67807:611770] -[PASignalTime getName]: unrecognized selector sent to instance 0x79f965a0 2016-08-03 01:39:46.423 Paco[67807:611770] error excoeption -[PASignalTime getName]: unrecognized selector sent to instance 0x79f965a0 print the notificatins Optional([Experiment Name: Amir- Reflex - Example of a reaction timer embedded in webview Group Name: New Group , Experiment Name: Bram - Custom Html Form Example 2 Group Name: default (null) :05:00PM , Experiment Name: Everything Demo New Group Name: default (null) :01:16AM , Experiment Name: Sneezy 3 Group Name: default :09:30AM :01:00PM :08:00PM ]) the index is 3 2016-08-03 01:39:49.264 Paco[67807:611770] -[PAScheduleTrigger getName]: unrecognized selector sent to instance 0x79f8d550 2016-08-03 01:39:49.265 Paco[67807:611770] error excoeption -[PAScheduleTrigger getName]: unrecognized selector sent to instance 0x79f8d550 2016-08-03 01:39:49.265 Paco[67807:611770] -[PASchedule getName]: unrecognized selector sent to instance 0x79f77e20 2016-08-03 01:39:49.265 Paco[67807:611770] error excoeption -[PASchedule getName]: unrecognized selector sent to instance 0x79f77e20 2016-08-03 01:39:49.265 Paco[67807:611770] -[PASignalTime getName]: unrecognized selector sent to instance 0x79f916a0 2016-08-03 01:39:49.266 Paco[67807:611770] error excoeption -[PASignalTime getName]: unrecognized selector sent to instance 0x79f916a0 2016-08-03 01:39:49.266 Paco[67807:611770] -[PASignalTime getName]: unrecognized selector sent to instance 0x79f93440 2016-08-03 01:39:49.266 Paco[67807:611770] error excoeption -[PASignalTime getName]: unrecognized selector sent to instance 0x79f93440 2016-08-03 01:39:49.266 Paco[67807:611770] -[PASignalTime getName]: unrecognized selector sent to instance 0x79f965a0 2016-08-03 01:39:49.266 Paco[67807:611770] error excoeption -[PASignalTime getName]: unrecognized selector sent to instance 0x79f965a0 2016-08-03 01:39:49.267 Paco[67807:611770] ----type 0 2016-08-03 01:39:49.280 Paco[67807:611770] ----type 0 2016-08-03 01:39:49.289 Paco[67807:611770] ----type 0 2016-08-03 01:39:49.300 Paco[67807:611770] Unknown class Schedule in Interface Builder file. 2016-08-03 01:39:55.157 Paco[67807:611770] * Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '* -[**NSPlaceholderArray initWithObjects:count:]: attempt to insert nil object from objects[0]' * First throw call stack: ( 0 CoreFoundation 0x05b3a494 __exceptionPreprocess + 180 1 libobjc.A.dylib 0x041eae02 objc_exception_throw + 50 2 CoreFoundation 0x059d9104 -[__NSPlaceholderArray initWithObjects:count:] + 340 3 CoreFoundation 0x05a3c244 +[NSArray arrayWithObjects:count:] + 68 4 Paco 0x001940d0 -[PacoSerializer buildModelObject:] + 144 5 Paco 0x0017654a -[PacoMediator startRunningExperimentRegenerate:] + 410 6 Paco 0x002111b7 TFC4Paco14ScheduleEditor10doneButtonfCSo15UIBarButtonItemT + 1879 7 Paco 0x002116ed TToFC4Paco14ScheduleEditor10doneButtonfCSo15UIBarButtonItemT + 61 8 libobjc.A.dylib 0x041ff0b5 -[NSObject performSelector:withObject:withObject:] + 84 9 UIKit 0x02724e38 -[UIApplication sendAction:to:from:forEvent:] + 118 10 UIKit 0x02bb49da -[UIBarButtonItem(UIInternal) _sendAction:withEvent:] + 179 11 libobjc.A.dylib 0x041ff0b5 -[NSObject performSelector:withObject:withObject:] + 84 12 UIKit 0x02724e38 -[UIApplication sendAction:to:from:forEvent:] + 118 13 UIKit 0x02724db7 -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 64 14 UIKit 0x028c8f3b -[UIControl sendAction:to:forEvent:] + 79 15 UIKit 0x028c92d4 -[UIControl _sendActionsForEvents:withEvent:] + 433 16 UIKit 0x028c9483 -[UIControl _sendActionsForEvents:withEvent:] + 864 17 UIKit 0x028c82c1 -[UIControl touchesEnded:withEvent:] + 714 18 UIKit 0x027a552e -[UIWindow _sendTouchesForEvent:] + 1095 19 UIKit 0x027a65cc -[UIWindow sendEvent:] + 1159 20 UIKit 0x02747be8 -[UIApplication sendEvent:] + 266 21 UIKit 0x0271c769 _UIApplicationHandleEventQueue + 7795 22 CoreFoundation 0x05a4ce5f __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION + 15 23 CoreFoundation 0x05a42aeb __CFRunLoopDoSources0 + 523 24 CoreFoundation 0x05a41f08 __CFRunLoopRun + 1032 25 CoreFoundation 0x05a41846 CFRunLoopRunSpecific + 470 26 CoreFoundation 0x05a4165b CFRunLoopRunInMode + 123 27 GraphicsServices 0x082bc664 GSEventRunModal + 192 28 GraphicsServices 0x082bc4a1 GSEventRun + 104 29 UIKit 0x02722eb9 UIApplicationMain + 160 30 Paco 0x000f7a94 main + 164 31 libdyld.dylib 0x0681aa25 start + 1 ) libc++abi.dylib: terminating with uncaught exception of type
Note, even just tapping "Done" without changing a schedule time causes the crash.
Not able to reproduce. I changed relevant code recently so may have fixed this bug as a side effect.