Xamarin的.IOS异常运行ibtool: object时不能为nil (key: family)

本文关键字:nil key family 不能 object IOS 异常 运行 Xamarin ibtool | 更新日期: 2023-09-27 18:02:53

我得到一个奇怪的错误,而试图建立我的解决方案:运行ibtool: *** setObjectForKey: object不能为nil (key: family)

我已经谷歌过了,但是这个问题没有答案,只有问题…也许值得一提的是,我使用的是Visual Studio Community 2015,我的Mac上安装了最新的Xcode,我有一个更新的iPhone 5s连接到Mac上。我的Mac上的操作系统是El Capitan(10.11.4)。

我认为这个问题主要来自我的故事板,起初我得到了这个错误,当我试图创建一个segue在两个视图之间的按钮。我删除了它,它像往常一样工作,现在我在这个项目中得到了同样的错误,这不是由于segue。

如果我排除了我的故事板,我可以毫不费力地构建解决方案,但我不能在我的iPhone上运行应用程序,因为故事板不见了。

有人知道问题是什么吗?如果需要,下面是错误日志:

Severity    Code    Description Project File    Line    Source  Suppression State
Error       Exception while running ibtool: *** setObjectForKey: object cannot be nil (key: family)
Backtrace:
  0   __exceptionPreprocess (in CoreFoundation)
  1   objc_exception_throw (in libobjc.A.dylib)
  2   -[__NSDictionaryM setObject:forKey:] (in CoreFoundation)
  3  0x00000001181c6b41 (in IDEInterfaceBuilderCocoaTouchIntegration)
  4  0x000000011814ee00 (in IDEInterfaceBuilderCocoaTouchIntegration)
  5  0x000000011814d775 (in IDEInterfaceBuilderCocoaTouchIntegration)
  6  0x000000011815f133 (in IDEInterfaceBuilderCocoaTouchIntegration)
  7  0x000000011815eeac (in IDEInterfaceBuilderCocoaTouchIntegration)
  8  0x000000011815ec66 (in IDEInterfaceBuilderCocoaTouchIntegration)
  9  0x000000011815d934 (in IDEInterfaceBuilderCocoaTouchIntegration)
 10  0x00000001181cb205 (in IDEInterfaceBuilderCocoaTouchIntegration)
 11  0x00000001181ccce7 (in IDEInterfaceBuilderCocoaTouchIntegration)
 12   -[IBDocumentCompiler invokeWhileUsingSourceAsIntermediateDocument:] (in IDEInterfaceBuilderKit)
 13   -[IBDocumentCompiler invokeWithIntermediateDocumentOfTargetRuntime:alwaysCopy:block:] (in IDEInterfaceBuilderKit)
 14  0x00000001181cc40a (in IDEInterfaceBuilderCocoaTouchIntegration)
 15  0x00000001181b8b4d (in IDEInterfaceBuilderCocoaTouchIntegration)
 16   -[IBStoryboardSceneCompilationGroup compilationResultsForCompilationUnits:options:returningErrors:] (in IDEInterfaceBuilderKit)
 17   -[IBStoryboardDocumentCompiler compileUnitsFromCompilationGroups:filter:options:errors:] (in IDEInterfaceBuilderKit)
 18   __78-[IBStoryboardDocumentCompiler compileContentsOfStoryboardWithOptions:errors:]_block_invoke (in IDEInterfaceBuilderKit)
 19   IBWithAutoInvalidationPool (in IDEInterfaceBuilderKit)
 20   -[IBStoryboardDocumentCompiler compileContentsOfStoryboardWithOptions:errors:] (in IDEInterfaceBuilderKit)
 21   -[IBStoryboardDocumentCompiler internalCompileWithOptions:error:] (in IDEInterfaceBuilderKit)
 22  0x00000001181b8f5e (in IDEInterfaceBuilderCocoaTouchIntegration)
 23   __57-[IBStoryboardDocumentCompiler compileWithOptions:error:]_block_invoke (in IDEInterfaceBuilderKit)
 24   -[IBDocumentCompiler invokeWithIntermediateDocument:] (in IDEInterfaceBuilderKit)
 25   -[IBDocumentCompiler invokeWithIntermediateDocumentOfTargetRuntime:alwaysCopy:block:] (in IDEInterfaceBuilderKit)
 26   -[IBStoryboardDocumentCompiler compileWithOptions:error:] (in IDEInterfaceBuilderKit)
 27   +[IBDocumentCompiler compileContentsOfDocument:options:error:] (in IDEInterfaceBuilderKit)
 28   __47-[IBDocument compiledPackageWithOptions:error:]_block_invoke (in IDEInterfaceBuilderKit)
 29   -[IBDocumentAutolayoutManager ignoreAutolayoutStatusInvalidationDuring:] (in IDEInterfaceBuilderKit)
 30   -[IBDocument compiledPackageWithOptions:error:] (in IDEInterfaceBuilderKit)
 31   -[IBDocument compileAndWriteToPath:withOptions:error:] (in IDEInterfaceBuilderKit)
 32  0x000000010ceb52da (in ibtoold)
 33  0x000000010ceb10e7 (in ibtoold)
 34  0x000000010ceb36ab (in ibtoold)
 35  0x000000010ceb75c8 (in ibtoold)
 36  0x000000010ceb7c5a (in ibtoold)
 37  0x000000010ceb7b2d (in ibtoold)
 38  0x000000010cea695b (in ibtoold)
 39  0x000000010ceb71c3 (in ibtoold)
 40  0x000000010ceb6274 (in ibtoold)
 41   start (in libdyld.dylib)  FridgeMe.iOS            Build   

编辑:我删除了我的第二个视图控制器,并创建了一个全新的,这似乎已经解决了问题。我仍然不确定是什么原因导致了这个问题,但是如果有人知道的话,我真的很想知道这种情况是否会再次发生。

编辑2:当我在另一个(新)视图控制器上添加一个按钮时,错误就回来了。它还指的是关于按钮没有代码的运行时错误(我认为这是当您在故事板上添加按钮时创建的)。请看图片。似乎按钮的代码没有正确生成。

我希望这能对其他遇到这个问题的人有所帮助。我仍然有点卡住,因为我试图手动复制一切关于一个按钮(改变它的名字当然)从我的工作视图控制器到新的,但我似乎没有得到它的工作。

我已经添加以下到我的ViewControllerCreate.designer.cs:

UIKit.UIButton BtnCreateAccount { get; set; }
void ReleaseDesignerOutlets()
{
    if (BtnCreateAccount != null)
    {
        BtnCreateAccount.Dispose();
        BtnCreateAccount = null;
    }
}

任何想法?

Xamarin的.IOS异常运行ibtool: object时不能为nil (key: family)

我得到了相同的错误。

分析后的代码main。在storyboard中,我发现,在我的例子中,错误跳转如果一个按钮或其他控件有这样的东西:

字体有问题,试着改成或者直接删除de line

问候,马塞洛

我不确定下面的代码是否对你有帮助。

internal class CustomUIView : UIView
{
    internal CustomUIView(IntPtr value) :base(value)
    {
    }
}   

的例子:

UIView view = new CustomUIView(IntPtr.Zero);

点击此处查看更多信息