Unable to build example SourceView with Xcode 8

Originator:david
Number:rdar://28597093 Date Originated:03-Oct-2016
Status:Open Resolved:
Product:Documentation Product Version:
Classification:Serious Bug Reproducible:Always
 
Summary:
Downloading the current SourceView sample, the code fails to build with an interface builder internal error

Steps to Reproduce:
1. Download SourceView
2. Attempt to build
3. Get error

Expected Results:
Working sample application

Actual Results:
/* com.apple.ibtool.errors */
/Users/dwaite/Downloads/SourceViewUsingNSOutlineViewwithNSTreeController 2/SourceView/Base.lproj/Main.storyboard: error: Exception while running ibtool: [<__NSCFConstantString 0x114806ca0> valueForUndefinedKey:]: this class is not key value coding-compliant for the key nodeTitle.
Backtrace:
  0   __exceptionPreprocess (in CoreFoundation)
  1   objc_exception_throw (in libobjc.A.dylib)
  2   -[NSException raise] (in CoreFoundation)
  3   -[NSObject(NSKeyValueCoding) valueForUndefinedKey:] (in Foundation)
  4   -[NSObject(NSKeyValueCoding) valueForKey:] (in Foundation)
  5   -[NSObject(NSKeyValueCoding) valueForKeyPath:] (in Foundation)
  6   -[NSBinder valueForBinding:resolveMarkersToPlaceholders:] (in AppKit)
  7   -[NSValueBinder _adjustObject:mode:observedController:observedKeyPath:context:editableState:adjustState:] (in AppKit)
  8   -[NSValueBinder _observeValueForKeyPath:ofObject:context:] (in AppKit)
  9   -[NSTextValueBinder _observeValueForKeyPath:ofObject:context:] (in AppKit)
 10   NSKeyValueNotifyObserver (in Foundation)
 11   NSKeyValueDidChange (in Foundation)
 12   -[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:key:key:usingBlock:] (in Foundation)
 13   _NSSetObjectValueAndNotify (in Foundation)
 14   -[NSTableRowData _addViewToRowView:atColumn:row:] (in AppKit)
 15   -[NSTableRowData _addViewsToRowView:atRow:] (in AppKit)
 16   -[NSTableRowData _initializeRowView:atRow:] (in AppKit)
 17   -[NSTableRowData _addRowViewForVisibleRow:withPriorView:] (in AppKit)
 18   -[NSTableRowData _addRowViewForVisibleRow:withPriorRowIndex:inDictionary:withRowAnimation:] (in AppKit)
 19   -[NSTableRowData _unsafeUpdateVisibleRowEntries] (in AppKit)
 20   -[NSTableRowData updateVisibleRowViews] (in AppKit)
 21   -[NSTableView layout] (in AppKit)
 22   -[NSView _doLayout] (in AppKit)
 23   -[NSView _layoutSubtreeWithOldSize:] (in AppKit)
 24   -[NSView _layoutSubtreeWithOldSize:] (in AppKit)
 25   -[NSView _layoutSubtreeWithOldSize:] (in AppKit)
 26   -[NSView _layoutSubtreeWithOldSize:] (in AppKit)
 27   -[NSView _layoutSubtreeWithOldSize:] (in AppKit)
 28   -[NSView _layoutSubtreeWithOldSize:] (in AppKit)
 29   -[NSView layoutSubtreeIfNeeded] (in AppKit)
 30   -[NSWindow(NSConstraintBasedLayout) _layoutViewTree] (in AppKit)
 31   -[NSWindow(NSConstraintBasedLayout) layoutIfNeeded] (in AppKit)
 32   -[IBCocoaAutolayoutEngine layoutIfNeeded] (in IDEInterfaceBuilderCocoaIntegration)
 33   -[NSISEngine performModifications:withUnsatisfiableConstraintsHandler:] (in Foundation)
 34   -[NSObject(IBAutolayoutFrameworkSupportInternal) ib_performModifications:withUnsatisfiableConstraintsHandler:] (in IBAutolayoutFoundation)
 35   -[IBAutolayoutEngine performInternalEngineModificationsAndAssertOnUnsatisfiableConstraintsIfNeededDuring:withUnsatisfiableConstraintsHandler:] (in IBAutolayoutFoundation)
 36   -[IBAutolayoutEngine continuouslyPerformEngineBootstrappingOperationWithName:untilSuccessWhileTrackingUnsatisfiableConstraintsDuring:withUnsatisfiableConstraintRemovedHandler:] (in IBAutolayoutFoundation)
 37   -[IBAutolayoutEngine initWithArbitrationUnit:options:] (in IBAutolayoutFoundation)
 38   -[IBCocoaAutolayoutEngine initWithArbitrationUnit:options:] (in IDEInterfaceBuilderCocoaIntegration)
 39   -[IBAutolayoutArbitrationUnit computeStatus] (in IBAutolayoutFoundation)
 40   __72-[IBDocumentAutolayoutManager updateAutolayoutStatusInArbitrationUnits:]_block_invoke_2 (in IDEInterfaceBuilderKit)
 41   -[IBDocumentAutolayoutManager ignoreAutolayoutStatusInvalidationDuring:] (in IDEInterfaceBuilderKit)
 42   __72-[IBDocumentAutolayoutManager updateAutolayoutStatusInArbitrationUnits:]_block_invoke (in IDEInterfaceBuilderKit)
 43   -[IBDocumentAutolayoutManager _runAutolayoutCommandForArbitrationUnits:withBlock:] (in IDEInterfaceBuilderKit)
 44   -[IBDocumentAutolayoutManager updateAutolayoutStatusInArbitrationUnits:] (in IDEInterfaceBuilderKit)
 45   -[IBDocumentAutolayoutManager didFireAutolayoutStatusDelayedInvocation:] (in IDEInterfaceBuilderKit)
 46   __48-[DVTDelayedInvocation initWithTarget:selector:]_block_invoke (in DVTFoundation)
 47   -[DVTDelayedInvocation runBlock:] (in DVTFoundation)
 48   -[DVTDelayedInvocation invokeIfNeeded] (in DVTFoundation)
 49   -[DVTDelayedInvocation invoke] (in DVTFoundation)
 50   -[IBDocument ensureAutolayoutStatusIsValid] (in IDEInterfaceBuilderKit)
 51   -[IBDocument changeDocumentTargetRuntimeTo:andPerformFrameDecision:withContext:andContextForUndo:] (in IDEInterfaceBuilderKit)
 52   __85-[IBDocumentCompiler invokeWithIntermediateDocumentOfTargetRuntime:alwaysCopy:block:]_block_invoke (in IDEInterfaceBuilderKit)
 53   -[IBDocumentCompiler invokeWithIntermediateDocument:] (in IDEInterfaceBuilderKit)
 54   -[IBDocumentCompiler invokeWithIntermediateDocumentOfTargetRuntime:alwaysCopy:block:] (in IDEInterfaceBuilderKit)
 55   -[IBCocoaXIBDocumentCompiler compileWithOptions:error:] (in IDEInterfaceBuilderCocoaIntegration)
 56   -[IBCocoaStoryboardDocumentCompiler compileCompilationUnit:options:forSceneCompilationGroup:error:] (in IDEInterfaceBuilderCocoaIntegration)
 57   -[IBStoryboardSceneCompilationGroup compilationResultsForCompilationUnits:options:returningErrors:] (in IDEInterfaceBuilderKit)
 58   -[IBStoryboardDocumentCompiler compileUnitsFromCompilationGroups:filter:options:errors:] (in IDEInterfaceBuilderKit)
 59   __78-[IBStoryboardDocumentCompiler compileContentsOfStoryboardWithOptions:errors:]_block_invoke (in IDEInterfaceBuilderKit)
 60   IBWithAutoInvalidationPool (in IDEInterfaceBuilderKit)
 61   -[IBStoryboardDocumentCompiler compileContentsOfStoryboardWithOptions:errors:] (in IDEInterfaceBuilderKit)
 62   -[IBStoryboardDocumentCompiler internalCompileWithOptions:error:] (in IDEInterfaceBuilderKit)
 63   __57-[IBStoryboardDocumentCompiler compileWithOptions:error:]_block_invoke (in IDEInterfaceBuilderKit)
 64   -[IBDocumentCompiler invokeWithIntermediateDocument:] (in IDEInterfaceBuilderKit)
 65   -[IBDocumentCompiler invokeWithIntermediateDocumentOfTargetRuntime:alwaysCopy:block:] (in IDEInterfaceBuilderKit)
 66   -[IBStoryboardDocumentCompiler compileWithOptions:error:] (in IDEInterfaceBuilderKit)
 67   +[IBDocumentCompiler compileContentsOfDocument:options:error:] (in IDEInterfaceBuilderKit)
 68   __47-[IBDocument compiledPackageWithOptions:error:]_block_invoke (in IDEInterfaceBuilderKit)
 69   -[IBDocumentAutolayoutManager ignoreAutolayoutStatusInvalidationDuring:] (in IDEInterfaceBuilderKit)
 70   -[IBDocument compiledPackageWithOptions:error:] (in IDEInterfaceBuilderKit)
 71   -[IBDocument compileAndWriteToPath:withOptions:error:] (in IDEInterfaceBuilderKit)
 72  0x000000010844b05c (in ibtoold)
 73  0x0000000108446c4b (in ibtoold)
 74  0x00000001084493c8 (in ibtoold)
 75  0x000000010844d3d0 (in ibtoold)
 76  0x000000010844da71 (in ibtoold)
 77  0x000000010844d944 (in ibtoold)
 78  0x000000010843bc0b (in ibtoold)
 79  0x000000010844cfcb (in ibtoold)
 80  0x000000010844c082 (in ibtoold)
 81   start (in libdyld.dylib)


2016-10-03 15:06:45.372 ibtoold[66722:4656380] [MT] DVTAssertions: ASSERTION FAILURE in /Library/Caches/com.apple.xbs/Sources/IDEInterfaceBuilder/IDEInterfaceBuilder-11521.1/CLITools/shared/IBCLIErrorForwarder.m:101
Details:  Uncaught exception: Cannot remove an observer <NSAutounbinderObservance 0x7fb427ed8860> for the key path "objectValue.nodeIcon" from <NSTableCellView 0x7fb427ed6b10>, most likely because the value for the key "objectValue" has changed without an appropriate KVO notification being sent. Check the KVO-compliance of the NSTableCellView class.
<DVTStackBacktrace: 0x7fb427bbf050>
Object:   <IBCLIErrorForwarder: 0x7fb424807a80>
Method:   -forwardErrorOutputToDescriptor:whileInvokingBlock:
Thread:   <NSThread: 0x7fb42261a160>{number = 1, name = main}
Hints: None
Backtrace:
  0   -[DVTAssertionHandler handleFailureInMethod:object:fileName:lineNumber:assertionSignature:messageFormat:arguments:] (in DVTFoundation)
  1   _DVTAssertionHandler (in DVTFoundation)
  2   _DVTAssertionFailureHandler (in DVTFoundation)
  3  0x000000010843bcf2 (in ibtoold)
  4  0x000000010844cfcb (in ibtoold)
  5  0x000000010844c082 (in ibtoold)
  6   start (in libdyld.dylib)


Version:
https://developer.apple.com/library/content/samplecode/SourceView/Introduction/Intro.html

Notes:
Issue appears related to the binding of the 'MyOutlineViewController/View/.../Items/Table Cell View' Title and Image views, which are bound to objectValue.nodeTitle and objectValue.nodeIcon, respectively.

As a workaround, I unchecked the "Raises for Not Applicable Keys" binding option for both, which let the application compile and start. 

Configuration:
Attempted on Xcode 8.0 (8A218a) and Xcode 8.1 beta (8T29o), both of which failed

Attachments:

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!