我们有一个使用 Storyboard 的 UIKit 应用程序的 Swift 项目。一切都很好,直到我决定将应用程序的最低部署目标降低到 iOS 7。在构建应用程序时,我在 ibtool 中点击了一个断言,它试图编译故事板。错误是这样的:
2015-06-12 11:49:07.216 ibtoold[41058:6974134] [MT] DVTAssertions: ASSERTION FAILURE in /SourceCache/IDEInterfaceBuilder/IDEInterfaceBuilder-7702/InterfaceBuilderKit/Connections/IBConnection.m:182
Details: Source and destination must be unique
Object: <IBCocoaTouchStoryboardPushSegue: 0x7fdea9bce8a0>
Method: -setDestination:
Thread: <NSThread: 0x7fdea2c07820>{number = 1, name = main}
Hints: None
Backtrace:
0 0x00000001015e0147 -[DVTAssertionHandler handleFailureInMethod:object:fileName:lineNumber:assertionSignature:messageFormat:arguments:] (in DVTFoundation)
1 0x00000001015dfb9f _DVTAssertionHandler (in DVTFoundation)
2 0x00000001015dfe8e _DVTAssertionFailureHandler (in DVTFoundation)
3 0x00000001023ff472 -[IBConnection setDestination:] (in IDEInterfaceBuilderKit)
4 0x00000001023fe5c9 +[IBConnection connectionWithSource:label:andDestination:] (in IDEInterfaceBuilderKit)
5 0x00000001086aa798 (in IDEInterfaceBuilderCocoaTouchIntegration)
6 0x0000000108704abb (in IDEInterfaceBuilderCocoaTouchIntegration)
7 0x0000000102481472 -[IBDocument updateConnectionsAfterEnablingOrDisablingConfigurations] (in IDEInterfaceBuilderKit)
8 0x0000000102482194 __35-[IBDocument disableConfigurations]_block_invoke (in IDEInterfaceBuilderKit)
9 0x0000000102481beb -[IBDocument maintainCanvasCentersWhileTransformingCanvasPositions:] (in IDEInterfaceBuilderKit)
10 0x000000010248209c -[IBDocument disableConfigurations] (in IDEInterfaceBuilderKit)
11 0x000000010868852c (in IDEInterfaceBuilderCocoaTouchIntegration)
12 0x0000000102497469 -[IBDocumentAutolayoutManager runBlockInNewArbitrationStackEntryWithBehavior:block:] (in IDEInterfaceBuilderKit)
13 0x000000010247de2b -[IBDocument modifyViewsInAutolayoutSafeWayDuring:] (in IDEInterfaceBuilderKit)
14 0x00000001086884e2 (in IDEInterfaceBuilderCocoaTouchIntegration)
15 0x000000010865d1e5 (in IDEInterfaceBuilderCocoaTouchIntegration)
16 0x000000010244628f -[IBDocument finishChangingTargetRuntimeInCompiledIntermediateDocument] (in IDEInterfaceBuilderKit)
17 0x00000001024a5811 __85-[IBDocumentCompiler invokeWithIntermediateDocumentOfTargetRuntime:alwaysCopy:block:]_block_invoke (in IDEInterfaceBuilderKit)
18 0x00000001024a55a9 -[IBDocumentCompiler invokeWithIntermediateDocument:] (in IDEInterfaceBuilderKit)
19 0x00000001024a574d -[IBDocumentCompiler invokeWithIntermediateDocumentOfTargetRuntime:alwaysCopy:block:] (in IDEInterfaceBuilderKit)
20 0x00000001026aa61c -[IBStoryboardDocumentCompiler compileWithOptions:error:] (in IDEInterfaceBuilderKit)
21 0x00000001024a5937 +[IBDocumentCompiler compileContentsOfDocument:options:error:] (in IDEInterfaceBuilderKit)
22 0x0000000102460550 __47-[IBDocument compiledPackageWithOptions:error:]_block_invoke (in IDEInterfaceBuilderKit)
23 0x0000000102498ee5 -[IBDocumentAutolayoutManager assertIfArbitrationIsScheduledDuring:] (in IDEInterfaceBuilderKit)
24 0x00000001024604a7 -[IBDocument compiledPackageWithOptions:error:] (in IDEInterfaceBuilderKit)
25 0x00000001013e9f0a (in ibtoold)
26 0x00000001013e6b40 (in ibtoold)
27 0x00000001013e9370 (in ibtoold)
28 0x00000001013ef233 (in ibtoold)
29 0x00000001013ef7b0 (in ibtoold)
30 0x00000001013ef683 (in ibtoold)
31 0x00000001013de60a (in ibtoold)
32 0x00000001013eee2c (in ibtoold)
33 0x00000001013ee074 (in ibtoold)
34 0x00007fff9289f5c9 start (in libdyld.dylib)
35 0x0000000000000002
Command /Applications/Xcode.app/Contents/Developer/usr/bin/ibtool failed with exit code 255
我检查了所有的segues(它们很多),但我似乎没有发现有什么问题。此外,当最小部署目标是 8.x 时,也没有问题。