注意:现在单元测试更容易设置.本教程与Xcode版本5及更高版本无关.
我花了很长时间,但我终于设法使它适用于我的项目.为了创建"逻辑"测试,我遵循Apple关于创建逻辑测试的指导原则.一旦您了解在构建期间运行逻辑测试,这就可以正常工作.
为了能够调试这些测试,需要创建一个可以调用这些测试的自定义可执行文件.本文通过对所著的Grokking可可博客肖恩·米塞利提供的所有信息来做到这一点.然而,它并没有立即取得成功,需要进行一些调整.
我将介绍Sean教程中提供的主要步骤,提供一些"for dummies"大纲,这花了我一些时间来弄清楚:
使用XCode 3.2.5执行以下操作
在XCode 4中,可以直接调试单元测试.只需编写测试,将其作为测试之一添加到目标并在其中设置断点.就这样.会有更多.
两者的名字可以是任何东西,但我会避免空格.
这里最重要的一点是获得正确的otest,即适用于您当前的iOS而不是默认的Mac版本.这在Sean的教程中有详细描述.以下是一些帮助我做好准备的细节:
讽刺的论点很容易设置......但事实证明这是我最大的问题.我最初将我的逻辑测试目标命名为"LogicTests Debug".使用此名称和"LogicTests Debug.octest"(带引号)作为otest的参数我保持otest终止与退出代码1并且永远不会停止到我的代码...
解决方案:目标名称中没有空格!
otest的论据是:
以下是复制/粘贴的环境变量列表:
请注意,我也尝试过DYLD_FORCE_FLAT_NAMESPACE,但这只是造成了骚乱.
这是球场.
viewWillAppear
和viewDidAppear
我的控制器.那么我应该怎么做以确保无论我的视图层次结构如何都始终调用这两个方法?
"复杂"视图层次结构的示例:
UIViewController subclass containing a UITabBarController
|_ Each tab containing a UINavigationViewController
|_ Each UINavigationController controller containing a custom UIViewController
Run Code Online (Sandbox Code Playgroud)
当您将TabBarController作为模态视图呈现时,将调用TabBarController的方法viewWillAppear
和viewDidAppear
方法,而不是嵌套在UINavigationViewControllers下的自定义UIViewControllers的方法.
问题在于: GDAL是一个非常棒的开源库,用于管理复杂的GIS数据,包括栅格和矢量.它完全针对Mac OS(由William Kyngesburye提供)和其他平台编译,但不适用于iOS.
浏览网络,您可以找到关于创建iOS库主题的一些(相对较旧的)信息,首先是3年前编写的来自pseudogreen的着名脚本.堆栈溢出上还有一些碎片,例如iPhone上的GDAL/OGR,它们提供了额外的信息.
本文旨在涵盖我采取的所有步骤,这使我在使用iOS6和XCode 4.5.5的简单iOS应用程序中实现GDAL/OGR的全功能集成
我使用Mercurial作为源代码控制,在KILN上管理主存储库.在某个时间点,我将iOS项目名称从WeatherTimeMachine更改为weathertimemachine.这导致了几个文件和文件夹的大小写更改:
与此同时,我在KILN的修订版中添加了一个标签...所以我现在有:
尝试合并时,我收到以下错误消息:"Mercurial case-folding collision"
我怎样才能解决这个问题?