【发布时间】:2014-06-06 20:29:51
【问题描述】:
我通过参与一个开源项目 (IPMenulet) 了解了更多关于 Cocoa、Objective-C 和 Xcode 的知识;该项目最初支持 OS X 10.5。
我匆忙中似乎添加了使用旧版 SDK 不支持的 SDK 元素(NSJSONSerialization 和 @autoreleasepool 编译器指令)的功能。现在,我正在尝试确定是否可以采取任何措施来恢复对 10.5 的支持
选项:
-
NSJSONSerialization- 我想我可以切换到JSONKit -
@autoreleasepool {}- ? -
@properties- 添加@synthesize和 IVARs
问题:
- 如果操作系统支持的话,有没有办法(编译器指令?)使用较新的 SDK 元素,必要时切换到较旧的元素?如果是这样,在特定于版本的方法中重构功能是否更好(例如
getJSONlegacy、getJSON)? - 将原始项目标记为单独的分支会更好(以便对其进行增强)吗?
【问题讨论】:
-
新功能的重点是抛弃旧操作系统。反向移植时,您需要采用最低公分母。回滚一切并重新开始。您也不一定需要依赖项来替换所有内容。 JSON解析器写起来很简单,你应该知道MRC,属性合成是clang的一个特性,而不是OS。
标签: objective-c xcode xcode5 osx-mavericks osx-leopard