Objective-C泛型 - 条件编译

4

如何编写能在Xcode 7编译时利用泛型的代码,同时也能在Xcode 6上编译?

我猜可能可以使用某种预处理器技巧来实现,比如这样:

#define XCODE7_ONLY(x) ...

NSDictionary XCODE7_ONLY(<NSString*, NSString*>)* dictionary;

1
我很好奇,你为什么想这样做?不久之后,你只能使用Xcode 7提交应用程序。 - Robert J. Clegg
我想测试我的应用程序是否能够在10.9上运行,通过使用基本SDK 10.9进行编译。 - Yoav
你可能需要考虑一下这是否真的会改善代码,是否存在将不正确的对象添加到字典中的问题?当然,添加类型信息并不是坏事。 - zaph
1个回答

3
您可以使用__has_feature(objc_generics)宏测试Obj-C泛型。因此,您可能需要尝试:
#if __has_feature(objc_generics)
#define XCODE7_ONLY(...) __VA_ARGS__
#else
#define XCODE7_ONLY(...)
#endif

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接