【问题标题】:Common strings in swift projectswift项目中的常用字符串
【发布时间】:2018-10-23 01:39:36
【问题描述】:

我正在 Swift 4.x 中创建一个新项目,我正在为我的项目寻找一些最佳解决方案。我想知道我们应该如何管理公共消息、JSON 密钥、网络调用、公共常量等......请看下面的一些示例:

  1. 我将在整个应用程序中使用的常见消息:

    • 好的
    • 完成
    • 请输入有效的邮箱
    • 请填写所有信息
    • 确定要继续
    • 等等……
  2. 我有来自服务器的 JSON 密钥:

    • 姓名
    • 令牌
    • 电子邮件
    • 年龄
    • app_identifier
    • 加入日期
    • 等等……
  3. 我有超过 200 个服务器 API:

    • getSomethingFromServer
    • deleteSometing
    • listSomething
    • clearAllCachedData
    • loginWithInformation
    • 注销
    • 等等……
  4. 我的常量很少:

    • 屏幕全宽
    • 屏幕的全高
    • 展示广告的时间间隔
    • 位置修复的内部
    • 登录的最大重试次数
    • 支持的最大视频大小
    • 等等……

所以我的问题是我应该把所有这些东西放在哪里?

我应该创建单独的文件并在需要的地方导入吗?

我应该在文件本身需要的地方使用所有这些吗?但随后会出现重复问题,例如我需要两个不同文件中的 URL 或屏幕大小。

我应该把所有这些都放在 plist 中吗?但是可能会出现 I/O 问题(不确定)?

我应该把所有这些都放在 Application Delegate 文件中吗?

【问题讨论】:

    标签: swift4


    【解决方案1】:

    创建一个常量类(项目中的Swift文件):

    public struct Constants {
    
        /************ SERVER URL *************/
        public static let CONFIGURE_URL : String = "YOUR BASE URL"
        public static let LOGIN_URL : String = "/login"
    
        /********** Login Preference ************/
        public static let USER_ID : String = "userId"
        public static let USER_TOKEN : String = "userToken"
        public static let USER_NAME : String = "userFname"
    
        /********    No Internet Connection     **********/
        public static let MESSAGE : String = "Please check your internet connection"
    }
    

    你可以像Constants.MESSAGE这样调用变量名,它会给出"Please check your internet connection"

    【讨论】:

    • 好的,您知道如何通过本地化扩展 MESSAGE 吗?假设我想添加对 3 种语言的支持,例如英语、西班牙语和中文。对于登录密钥和服务器 URL,这很好,但对于消息,我需要本地化支持。
    • 然后你需要添加本地化文件,你可以直接访问那些字符串 yourLabel.text = "yourlabelInLocalize".localized()
    • 好的,还有一个问题,我有大约 250 多个 URL、400 多个常见消息、200 多个键和 25 多个常量,因此将所有内容放在一个文件中(如您提到的那样快速构造)是一个很好的方法。我的意思是,通过 import 将这个大文件导入到其他各种文件中是一个好方法吗?还是我们应该分解一些东西?
    • 250+ URL,200+ 键,25+ 常量在常量文件中声明,400+ 通用消息在本地化文件中声明这些
    • 好的,我会这样做
    猜你喜欢
    • 2014-12-14
    • 2017-07-07
    • 2015-05-21
    • 1970-01-01
    • 1970-01-01
    • 2015-10-03
    • 2019-03-09
    • 1970-01-01
    • 2015-09-08
    相关资源
    最近更新 更多