我想使用Xcode 7.0轻量级语法:
NSArray<NSDictionary<NSString *, NSString *> *> *fooList;
但Travis只支持Xcode 6.1:https://docs.travis-ci.com/user/osx-ci-environment/
使用Xcode 6为Travis构建时,有没有办法忽略尖括号?
[编辑:问题不相关:Travis supports Xcode 7 ]
答案 0 :(得分:2)
较新版本的Objective-C中的轻量级泛型语法需要在Xcode 6中找不到更新版本的编译器。
因此,在使用Xcode 6时,没有简单的方法可以编译这样的语法。
你唯一的选择就是可怕的代码,例如:
#if __IPHONE_OS_VERSION_MAX_ALLOWED < 90000
NSArray *fooList;
#else
NSArray<NSDictionary<NSString *, NSString *> *> *fooList;
#endif
毋庸置疑,这远非一个好主意。
但是你有一个更大的问题。尝试使用Xcode 6进行应用程序的持续集成构建,你真的想用Xcode 7构建它是一个坏主意。您最终无法构建或测试正确的代码。您甚至无法支持正确的API或iOS版本。
更好的解决方案是使用支持最新版Xcode和相关SDK / API的CI工具。