使用垃圾收集构建Objective-C应用程序还有什么办法吗?
我正在编写一个库以增强Mac应用程序(因此我使用DYLD_INSERT_LIBRARIES='/path/to/dylib' /Applications/Original.app/Content/MacOS/Original
运行应用程序)
当我运行这个时,我首先遇到问题,因为我的lib使用ARC,与原始应用程序不同。现在我已禁用ARC,但在原始应用程序崩溃之前我收到此运行时错误:
objc[610]: '/Users/me/mylib/myLib.dylib' was not compiled with -fobjc-gc or -fobjc-gc-only, but the application requires GC
objc[610]: *** GC capability of application and some libraries did not match
然而,看起来Apple现在已经取消了对普通旧GC的支持,转而支持ARC
我曾尝试使用XCode中的GCC_ENABLE_OBJC_GC
或gcc(或clang)的-fobjc-gc
参数,但我收到此编译错误:garbage collection is no longer supported
。
看起来我被困了......有没有办法用GC强制构建我的lib?我想我可能会使用仍然支持GC的旧版LLVM / gcc,但有更简单的方法吗?
注意:我使用的是XCode 6.1和Yosemite,原始应用程序(因此我的lib)是32位。
非常感谢