无法为iOS 7编译情节提要

无法为iOS 7编译情节提要,ios,storyboard,segue,ibtool,Ios,Storyboard,Segue,Ibtool,我们有一个使用故事板的UIKit应用程序的Swift项目。一切都很好,直到我决定将应用程序的最低部署目标降低到iOS 7。在构建应用程序时,我在试图编译情节提要的ibtool中点击了一个断言。错误如下所示: 2015-06-12 11:49:07.216 ibtoold[41058:6974134] [MT] DVTAssertions: ASSERTION FAILURE in /SourceCache/IDEInterfaceBuilder/IDEInterfaceBuilder-7702/

我们有一个使用故事板的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
2015-06-12 11:49:07.216 ibtoold[41058:6974134][MT]DVTAssertions:/SourceCache/IDEInterfaceBuilder/IDEInterfaceBuilder-7702/InterfaceBuilderKit/Connections/IBConnection中的断言失败。m:182
详细信息:源和目标必须是唯一的
对象:
方法:-设置目的地:
线程:{number=1,name=main}
提示:无
回溯:
0 0x00000001015e0147-[DVTAssertionHandler handleFailureInMethod:对象:文件名:行号:断言签名:消息格式:参数:](在DVTFoundation中)
1 0x00000001015dfb9f_DVTAssertionHandler(位于DVT地基中)
2 0x00000001015dfe8e\U DVTAssertionFailureHandler(在DVTFoundation中)
3 0x00000001023ff472-[IBConnection setDestination:](在IDEInterfaceBuilderKit中)
4 0x00000001023fe5c9+[IBConnection连接与源:标签:和目标:](在IDEInterfaceBuilderKit中)
5 0x00000001086aa798(在IDEInterfaceBuilderCoCatouch集成中)
6 0x0000000108704abb(在IDEInterfaceBuilderCoCatouch集成中)
7 0x0000000102481472-[IBDocument UpdateConnections AfterenablingOrdisableConfigurations](在IDEInterfaceBuilderKit中)
8 0x0000000102482194-[IBDocument DisableConfiguration]-块调用(在IDEInterfaceBuilderKit中)
9 0x0000000102481beb-[IBDocument MaintaintCanvasCenter在转换CanvasPositions:]时:](在IDEInterfaceBuilderKit中)
10 0x000000010248209c-[IBDocument DisableConfiguration](在IDEInterfaceBuilderKit中)
11 0x000000010868852c(在IDEInterfaceBuilderCoCatouch集成中)
12 0x0000000102497469-[IBDocumentAutolayoutManager运行BlockInNewArbitionsTackEntryWithBehavior:block:](在IDEInterfaceBuilderKit中)
13 0x000000010247de2b-[IBDocument modifyViewsInAutolayoutSafeWayDuring:](在IDEInterfaceBuilderKit中)
14 0x00000001086884e2(在IDEInterfaceBuilderCoCatouch集成中)
15 0x000000010865d1e5(在IDEInterfaceBuilderCoCatouch集成中)
16 0x000000010244628f-[IBDocument finishChangingTargetRuntimeInCompiledIntermediateDocument](在IDEInterfaceBuilderKit中)
17 0x00000001024a5811 u_85-[IBDocumentCompiler调用目标的中间文档时间:AlwayScope:block:][uBlock_调用(在IDEInterfaceBuilderKit中)
18 0x00000001024a55a9-[IBDocumentCompiler调用中间文档:](在IDEInterfaceBuilderKit中)
19 0x00000001024a574d-[IBDocumentCompiler调用目标的中间文档时间:始终透视:块:](在IDEInterfaceBuilderKit中)
20 0x00000001026aa61c-[IBStoryboard文档编译器编译选项:错误:](在IDEInterfaceBuilderKit中)
21 0x00000001024a5937+[IBDocumentCompileContentsOfDocument:选项:错误:](在IDEInterfaceBuilderKit中)
22 0x000000010246050 \uuuu47-[IBDocument compiledPackageWithOptions:error:][u block\u invoke(在IDEInterfaceBuilderKit中)
23 0x0000000102498ee5-[IBDocumentAutolayoutManager断言FarbitrationisScheduledDuring:](在IDEInterfaceBuilderKit中)
24 0x00000001024604a7-[IBDocument compiledPackageWithOptions:错误:](在IDEInterfaceBuilderKit中)
25 0x00000001013e9f0a(在ibtoold中)
26 0x00000001013e6b40(在ibtoold中)
27 0x00000001013e9370(在ibtoold中)
28 0x00000001013ef233(在ibtoold中)
29 0x00000001013ef7b0(在ibtoold中)
30 0x00000001013ef683(在ibtoold中)
31 0x00000001013de60a(在ibtoold中)
32 0x00000001013eee2c(在ibtoold中)
33 0x00000001013ee074(在ibtoold中)
34 0x00007fff9289f5c9启动(在libdyld.dylib中)
35 0x0000000000000002
命令/Applications/Xcode.app/Contents/Developer/usr/bin/ibtool失败,退出代码为255

我检查了所有的序列(它们很多),但我似乎没有发现什么问题。此外,当最低部署目标为8.x时,也没有问题。

注意-这一切都是通过手动将引用出口添加到UI元素实现的。不久之后,我发现我不需要这样做,isntead只需添加一个
标记
,因为我只想通过编程方式访问元素以隐藏/显示它()

无论如何

我不知道这是否一定适用于OP,但它可能会帮助谷歌:

当我通过直接编辑
.xib
的XML而不是使用interface builder在故事板中手动添加引用插座时,遇到了这个错误

原因:我想在我的标签上添加一个引用插座。但是,当我在interface builder中使用“New Reference Outlet”时,我想要的
IBOutlet
没有显示在列表中。因此,我采用了“用锤子猛击它直到它工作”的方法,并决定在XML中手动添加引用出口

引用插座如下所示:

destination
是作为出口的UI元素的id,
id
是引用出口的唯一id

应该是
元素的子元素(从某种意义上讲,它是将我的UI元素连接到
中的IBOutlet
)。我的
有一个
元素,因此我在那里添加了插座这就是导致我的源和目标必须是唯一错误的原因。我想它不喜欢成为元素的子元素,它是元素的出口

因此,为了修复错误,我将
元素从实际UI元素的子元素
移动到了该视图的子元素

以下是(高度缩写的)XML:


是否确实删除了衍生数据?这可能只是一个剩菜。是的,我删除了这个菜
<viewController>
    <layoutGuides />
    <view>
        <subviews>
            <label id="9CH-Ow-gWo">
                <connections>
                    <!-- dont put the outlet here -->
                </connections>
            </label>
        </subviews>
    </view>
    <connections>
        <!--put the outlet here! -->
        <outlet property="nameOfTheVar" destination="9CH-Ow-gWo" id="8CH-Ow-hWo"/>
    </connections>
</viewController>