iOS:不同的调试和发布常量,objective-c

标签 ios objective-c constants header-files compile-time-constant

<分区>

我是 Objective-C 和 iOS 开发的新手,正在寻找最佳实践。我想要有不同的常量 BASE_URL 这取决于 DEBUG 和 PRODUCTION 环境..

我希望它看起来像,例如常量.m:

#import "Constants.h"

static NSString *BASE_URL = @"http://localhost:3000";

NSString * const API_URL = [BASE_URL stringByAppendingString:@"/api"];

.pch文件:

#ifdef __OBJC__
   #import <UIKit/UIKit.h>
   #import <Foundation/Foundation.h>
   #import "Constants.h"
#endif

但是编译器说我在这里错了 - NSString * const API_URL = [BASE_URL stringByAppendingString:@"/api"];

初始化器元素不是编译时常量

最佳答案

您收到的错误消息不言自明:您需要使用编译时间常量。

关于具有不同的调试和发布常量,只需使用以下内容:

// YourConstants.h
extern NSString * const kYourConstant;

// YourConstants.m
#import "YourConstants.h"

#ifdef DEBUG
NSString * const kYourConstant = @"debugValue";
#else
NSString * const kYourConstant = @"productionValue";
#endif

关于iOS:不同的调试和发布常量,objective-c,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23346235/

上一篇:ios - 如何使用 bundle 中的数据移动 sqlite3 数据库

下一篇:ios - UITableView 的单元格不能用作设置

相关文章:

iphone - Facebook 连接 Batch 请求和 FQL 错误问题

javascript - 在 keyup 函数运行时保持 iOS 键盘打开

iphone - 缓存的 UITableView 元素

C++ const 基于输入的静态启动

c++ - 无法在 gcc 中创建 std::pair 的 const 成员

java - 是否存在技术原因导致 Java 中的 Final 不像 C++ 中的 const 那样严格?

ios - 如何使用 boost-library 为 iOS(设备和模拟器)构建 ASSIMP 库?

ios - 快速调试: app stops at breakpoints and doesn't crash

iphone - 禁止在受监管设备上进行操作

iphone - @synthesize 干扰继承