【问题标题】:Where can I store my webserver URLs?我可以在哪里存储我的网络服务器 URL?
【发布时间】:2013-05-25 22:20:22
【问题描述】:

我在我的移动应用程序中对所有 URL 进行硬编码,我知道这不是一个好主意。例如,如果我需要移动域名,我需要在每个页面上将应用程序中的所有 URL 从 www.oldname.com 重命名为 www.newname.com。

我不确定将它们存储在何处以及如何存储它们,以便我可以在单个页面上修改此信息并使其在所有页面中自动更改。

在 PHP 中,我会创建一个包含变量的单个文件,这些变量会包含在所有页面中。但是,我不确定这是如何在 Objective-c 中完成的。你是怎么做到的?

【问题讨论】:

    标签: ios objective-c global-variables


    【解决方案1】:

    您可以创建一个常量文件并将其包含在列出 URL 的所有其他文件中。

    创建一个文件,例如constants.h 放置所有常量的地方。 在 constants.h 中你可以这样写:

    #define kApiBaseUrl @"https://myapi.mydomain.com"
    

    在您的其他文件中,您可以像以下示例一样访问它:

    NSURL *url = [NSURL URLWithString:kApiBaseUrl];
    

    这可能就像您在 PHP 中所做的那样。 您还可以在应用的 PLIST 中设置预定义的 URL,但这可能更容易。

    【讨论】:

      【解决方案2】:

      类似edwardmp的响应,也可以创建一个Constants.h文件,定义一些静态常量字符串。

      static NSString *const kSiteRootURL = @"http://www.someurl.com";
      

      【讨论】:

        【解决方案3】:

        检查项目中的“Supporting Files”文件夹,您应该有一个名为“nameOfYourApp-Prefix.pch”的文件,然后您可以定义根URL作为示例

        #define ROOT_URL    @"yourwebsite.com"
        

        您可以从项目中的任何位置访问 ROOT_URL

        【讨论】:

          【解决方案4】:

          您可以将 URL 保存在属性列表文件中(文件 => 新文件 => 属性 ...)。你会有类似“config.plist”的东西。与其他属性文件类似,它是 key => value 文件,其中 value 可以是字符串、数组等。

          使用 NSBundle 在你的应用中加载文件,比如

          NSString *path = [[NSBundle mainBundle] pathForResource:@"config" ofType:@"plist"];
          NSDictionary *config = [[NSDictionary alloc] initWithContentsOfFile:path];
          

          这将带来一个好处,即您在对 URL 进行任何更改时都不必重新编译代码。

          【讨论】:

            【解决方案5】:

            您可以将 NSString 添加到您的 .pch 文件中以包含在所有模块中。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2014-12-26
              • 1970-01-01
              • 2011-01-23
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多