我正在尝试设置雪松,但很难让它工作。我正在尝试按照 github 上的说明进行操作。
我正在使用 xcode 4.2。
我不确定的第一步是:
“为项目中的测试创建一个 Cocoa Touch “应用程序”目标。将此目标命名为 UISpecs 或类似名称。”
a) 我不确定在使用 cedar 进行测试时是否能够将 ARC 用于我的主要应用程序。b)我很确定我不能使用 ARC 来构建雪松本身,我想我也不想这样做。c) 我不确定我能否将 ARC 用于包含我的规格的测试项目。d) 我不确定我应该使用哪个应用程序模板来创建应用程序来容纳规范。
我使用 ARC 和单窗口应用程序模板创建了一个新的主应用程序。我使用空的应用程序模板创建了一个新的应用程序来容纳我的规格而没有 ARC。
当我打开包含我的规格的测试应用程序的 plist.info 文件时,我没有看到“主 nib 文件基本名称”选项。所以我忽略了这一步。
现在我来一步:
“将 Cedar-iOS 静态框架添加到您的项目中,并将您的 UISpecs 目标与其链接。”
所以我去了规范应用程序构建目标并将 ~/Library/Developer/Xcode/DerivedData/Cedar-borwneaogydgaodbtmfyaccykqxn/Build/Products/Debug-iphoneos/libCedar-StaticLib.a 文件添加到项目中的“链接二进制文件与库" “构建阶段”选项卡下的选项卡。
然后,我将 -ObjC、-lstdc++ 和 -all_load 添加到 UISpecs 目标的 Other Linker Flags 构建设置中。
接下来,在包含规范的应用程序下,我创建了一个名为 TestSpec.m 的新文件并将此代码添加到其中,以尝试获取失败的规范:
#import <Cedar/SpecHelper.h>
SPEC_BEGIN(FooSpec)
describe(@"Foo", ^{
it(@"should do something", ^{
expect(0).to(equal(1));
});
});
SPEC_END
当我尝试在模拟器中运行 specs 项目时,我遇到了一些关于使用 ARC 时不支持 alloc 和 autorelease 的错误。我想这意味着我的主应用程序不能使用 ARC,而我的规范应用程序没有。我删除了我的规范应用程序并再次尝试,这次使用 ARC。
我从 main.m 代码中删除了自动释放池和释放代码以符合 ARC。
我现在得到两个构建错误:
1)在main.m中:文件://localhost/Users/nelsond/workspace/BIM360UIArchitecture/BIM360UIPrototype/BIM360Issues-IOS/BIM360Issues-IOS-Specs-ARC/main.m:错误:词法或预处理器问题:'Cedar-iOS /Cedar-iOS.h' 文件未找到 2) 在 TestSpec.m 中:file://localhost/Users/nelsond/workspace/BIM360UIArchitecture/BIM360UIPrototype/BIM360Issues-IOS/BIM360Issues-IOS-Specs-ARC/TestSpec.m: 错误:词汇或预处理器问题:找不到“Cedar/SpecHelper.h”文件
我很困惑接下来要调试什么。