Chr*_*ian 5 debugging cocoa release objective-c
我正在Objective C中编写一个与Web服务进行通信的Cocoa应用程序,我希望它以调试模式连接到沙箱,并在发布模式下连接到真正的Web服务.我只需要更改代码行,其中保存配置的对象被实例化(使用不同的init-message和不同的参数).
那么我如何为Release或Debug模式交换一行代码呢?
您可以使用特定于配置的定义来更改已执行的代码.阅读有关如何在Xcode中首先定义预处理器符号的内容.然后,在您的代码中,执行以下操作:
#if DEBUG_MODE
#define BACKEND_URL @"http://testing.myserver.com"
#else
#define BACKEND_URL @"http://live.myserver.com"
#end
NSURLRequest *myRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:BACKEND_URL]];
Run Code Online (Sandbox Code Playgroud)
你可以检查#ifdef DEBUG,但我建议你不要那样做.
Debug和Release版本之间存在很多差异.不同的编译器优化,不同的符号集等......
总是,您会发现自己处于这样一种情况:您希望针对沙箱运行Release构建以进行调试....以及针对生产Web服务的调试构建,因为某些客户的问题仅在发布模式下重现.
所以,为此,我建议用户默认.见NSUserDefaults.
请注意,可以从命令行设置简单的用户默认值.
因此,您可以执行以下操作:
/path/to/Myapp.app/Contents/Macos/Myapp -ServerMode Debug
Run Code Online (Sandbox Code Playgroud)