在Swift中创建Constant文件的最佳方法是什么?请检查说明

问题描述 投票:0回答:2

我见过有人用Struct这样声明常量文件:

方法1:

struct Constants {
    struct UserInfoParam {
        static let userName = "user_name"
        static let userID = "user_id"
    }
}

并这样称呼:

print(Constants.UserInfoParam.userName)

方法2:有些人直接创建一个Swift文件,并简单地声明变量,例如:

import Foundation

let userName = "user_name"
let userID = "user_id"

并简单地这样称呼它:

print(userID)

我想知道哪种方法最适合代码质量和其他编码方面。有人可以澄清一下吗?在此先感谢。

ios swift cocoa-touch coding-style constants
2个回答
0
投票

编码风格取决于人与人,因此在这里它也取决于您和您的要求。

例如,使用方法1,您可以对常量进行分类。检查,

struct Constants {
    struct UserInfoParam {
        static let userName = "user_name"
        static let userID = "user_id"
    }

    struct API {
        static let api1 = "api1"
        static let api2 = "api2"
    }

    struct AlertMessages {
        static let NoDataFound = "No Data Found."
        static let InternetError = "Check internet connection."
    }

}

在以上方法中,我个人不希望使用Constants结构,因为它只是增加了结构层次。

所以我确实喜欢这个,

struct UserInfoParam {
    :
}

struct API {
    :
}

struct AlertMessages {
    :
}

现在无论何时需要,我都只写AlertMessages.NoDataFound而不是Constants.AlertMessages.NoDataFound。这两种方法都是正确的,您可以尝试任何人。

但是当您谈论Approach2时,您可以将其用于一些常规常量。

例如

let Base_URL = "Base URL"
let ItunesAppId = "ID"

依此类推。

这些对象全局使用,即使在Constants结构中也是如此。这些var不属于任何类别。

[通常,开发人员通过这些方式进行编码。


0
投票

这是一个样式问题,但是我更喜欢使用枚举。您也可以使用结构。

enum Constant {
    enum APIKey {
        static let nasa = "jfkdafjkafdjkafda"
        static let usgs = "1234567890987654321"
    }
}

let nasaAPIKey = Constant.APIKey.nasa

如果没有静态let声明就可以得到,例如CaseIterable。这取决于您。

enum Constant {
    enum APIKey: String, CaseIterable {
        case nasa = "jfkd;afjka;fdjkafda"
        case usgs = "1234567890987654321"
    }
}

let nasaAPIKey = Constant.APIKey.nasa.rawValue
© www.soinside.com 2019 - 2024. All rights reserved.