我继承了一个 iPhone 应用程序,该应用程序有一个文件,其中包含对我们的服务器执行 API 调用所需的所有代码 (ServerRequests.h/m)。
API 的所有端点都隐藏在各种方法中,我正在寻找一种方法将这些端点重构到它们自己的单独文件中,或者至少在该文件顶部声明常量。
问题在于 API 端点的部分内容是可变的,例如 user_id、photo_id 等。
我是否可以将格式字符串存储为常量,然后稍后替换可变部分?
如果没有,您对如何以更好的方式管理我的 API 端点(而不是将它们散布在整个文件中)有什么建议吗?
如果我理解您的需求,这样的事情可能对您有用:
#define SOME_ENDPOINT @"what/ever/%@/you/need"
在使用时,您使用字符串格式化来获取最终的字符串:
[NSString stringWithFormat:SOME_ENDPOINT, user_id, ...];
字符串的大部分存储在一个常量中,该常量是用作格式化最终字符串的格式规范的模板。
这就是你想要的吗?或者需要一些“更奇特”的东西?我在 Obj-C 中怀念 Python 的一个功能 - 你可以使用 @"some/%(user_id)s/etc/etc/" 等格式的“命名”说明符,并且当你执行格式化时,你提供一个字典)。 “user_id”规范用作查找关联值的键,然后对其进行格式化(例如,在我的示例中使用“s”规范。在 Obj-C 中尚未找到类似的功能。