Additional: I'm missing something important. I rejigged the code to make the Maze class a nested class inside the MazieSaverView class (yeuch!), and the ScreenSaver app is STILL calling the selector on it.
Process: System Preferences [6909]
Path: /Applications/System Preferences.app/Contents/MacOS/System Preferences
Identifier: com.apple.systempreferences
Version: 14.0 (14.0)
Build Info: SystemPrefsApp-281000000000000~3
Code Type: X86-64 (Native)
Parent Process: ??? [1]
Responsible: System Preferences [6909]
User ID: 501
PlugIn Path: /Users/USER/Library/Screen Savers/MazieSaver.saver/Contents/Frameworks/libswiftCore.dylib
PlugIn Identifier: libswiftCore.dylib
PlugIn Version: 2.0 (700.0.59)
Date/Time: 2015-09-30 08:49:07.820 +0100
OS Version: Mac OS X 10.10.5 (14F27)
Report Version: 11
Time Awake Since Boot: 100000 seconds
Time Since Wake: 42000 seconds
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Application Specific Information:
com.apple.preference.desktopscreeneffect v.5.1 (Desktop & Screen Saver)
objc[6909]: GC: forcing GC OFF because OBJC_DISABLE_GC is set
abort() called
Unrecognized selector -[_TtCC10MazieSaver14MazieSaverView4Maze initWithFrame:isPreview:]
Application Specific Signatures:
MazieSaver
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x00007fff9bb87286 __pthread_kill + 10
1 libsystem_c.dylib 0x00007fff9aa439b3 abort + 129
2 libswiftCore.dylib 0x000000010fa57544 swift::fatalError(char const*, ...) + 212
3 libswiftCore.dylib 0x000000010fa58726 -[SwiftObject doesNotRecognizeSelector:] + 86
4 com.apple.CoreFoundation 0x00007fff92bcae24 ___forwarding___ + 1028
5 com.apple.CoreFoundation 0x00007fff92bca998 _CF_forwarding_prep_0 + 120
6 com.apple.ScreenSaver 0x00007fff929b6367 -[ScreenSaverModules loadModule:frame:isPreview:] + 974
7 com.apple.preference.desktopscreeneffect.screeneffects 0x0000000109543315 0x10953a000 + 37653
8 com.apple.preference.desktopscreeneffect.screeneffects 0x000000010954377c 0x10953a000 + 38780
9 com.apple.preference.desktopscreeneffect.screeneffects 0x0000000109544b7c 0x10953a000 + 43900
10 com.apple.preference.desktopscreeneffect.screeneffects 0x0000000109544fe5 0x10953a000 + 45029
11 com.apple.AppKit 0x00007fff9492b0c5 -[NSCollectionViewItem _setSelectedWithoutNotification:] + 35
12 com.apple.CoreFoundation 0x00007fff92ba1705 __53-[__NSArrayM enumerateObjectsWithOptions:usingBlock:]_block_invoke + 133
13 com.apple.CoreFoundation 0x00007fff92ba0e09 -[__NSArrayM enumerateObjectsWithOptions:usingBlock:] + 313
14 com.apple.AppKit 0x00007fff9492b9e7 -[NSCollectionView _applySelectionIndexes:toItems:] + 91
15 com.apple.AppKit 0x00007fff9492b75e -[NSCollectionView _selectObjectsAtIndexes:avoidsEmptySelection:] + 443
16 com.apple.AppKit 0x00007fff94dac0bc -[NSCollectionView mouseDown:] + 649
17 com.apple.AppKit 0x00007fff94691cfb forwardMethod + 126
18 com.apple.AppKit 0x00007fff94691cfb forwardMethod + 126
19 com.apple.AppKit 0x00007fff94d0a2dc -[NSWindow _reallySendEvent:isDelayedEvent:] + 14125
20 com.apple.AppKit 0x00007fff94699c86 -[NSWindow sendEvent:] + 470
21 com.apple.systempreferences 0x000000010310db12 0x103106000 + 31506
22 com.apple.AppKit 0x00007fff94696212 -[NSApplication sendEvent:] + 2504
23 com.apple.systempreferences 0x000000010310cf7b 0x103106000 + 28539
24 com.apple.AppKit 0x00007fff945bfb68 -[NSApplication run] + 711
25 com.apple.AppKit 0x00007fff9453c244 NSApplicationMain + 1832
26 libdyld.dylib 0x00007fff97c665c9 start + 1