Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS框架中的异常是否显示私有代码?_Ios_Objective C_Exception_Frameworks_Private - Fatal编程技术网

iOS框架中的异常是否显示私有代码?

iOS框架中的异常是否显示私有代码?,ios,objective-c,exception,frameworks,private,Ios,Objective C,Exception,Frameworks,Private,我正在构建一个iOS框架,其中只有一个头文件是公开的,其余的代码是私有的。在Xcode中,我打开了所有objective-c异常断点,因此通常当出现异常时,我会将异常带到代码中发生的位置 在使用我创建的这个框架的全新项目中进行测试期间,当框架中不时出现异常时,我会使用其他私有框架代码,这显然不是我想要的 我认为这可能是因为实际的原始框架代码/项目存在于我的环境中,在没有访问实际文件的情况下,其他人不会使用我的框架,但不幸的是,我目前没有任何方法来测试这一理论。有没有人知道这是不是我需要处理的事情

我正在构建一个iOS框架,其中只有一个头文件是公开的,其余的代码是私有的。在Xcode中,我打开了所有objective-c异常断点,因此通常当出现异常时,我会将异常带到代码中发生的位置

在使用我创建的这个框架的全新项目中进行测试期间,当框架中不时出现异常时,我会使用其他私有框架代码,这显然不是我想要的


我认为这可能是因为实际的原始框架代码/项目存在于我的环境中,在没有访问实际文件的情况下,其他人不会使用我的框架,但不幸的是,我目前没有任何方法来测试这一理论。有没有人知道这是不是我需要处理的事情,以便真正保持项目文件的私密性,或者这只是让代码在本地存在的一个功能?

我能够在另一个开发环境中使用一个新的项目放入框架并强制内部框架崩溃,如果其他私有框架文件存在于同一环境中,并且当您有objective-c异常时会发生崩溃启用断点它将打开有问题的私有框架文件,但是如果您没有这些私有框架文件(框架的使用者不会),您将被带到正常的崩溃/堆栈跟踪视图,如下所示:


AFAIK,异常旨在显示发生异常的代码。您可能已经注意到,如果Apple代码中的某些内容崩溃,调试器将显示发生异常的文件、行号和方法名。这很好,因为如果是bug,框架的用户可以向您报告崩溃发生的位置。它可能会显示文件/行号/方法名称,但实际上不会打开包含所有代码的.m文件-这就是我在这里看到的。打开吗?你这是什么意思?如果它在Xcode中打开,那么它只是一个帮助您的调试功能。如果它被记录到控制台…那么你就有问题了。在我的项目中,我当前查看的文件从框架内的私有文件更改为.m文件,在异常发生的行上有一个断点。你能发布你看到的屏幕截图吗?