ios - 在不同目标之间共享全局常量

标签 ios swift xcode constants

我在一个项目中有一些全局常量:

// DemoACIs.swift
let DEMO_TEST_MENU_SCREEN_VIEW_ACI = "test_menu_screen_view"
let DEMO_TEST_MENU_SCREEN_TITLE_LABEL_ACI = "test_menu_screen_title_label"
let DEMO_TEST_MENU_SCREEN_BUTTON1_ACI = "test_menu_screen_button1"
etc.

我想在 Xcode 中的另一个基于 Swift 的目标(在本例中为 UI 测试目标)中引用它们 ...

// TestMenuScreenViewProxy.swift

import Foundation
import XCTest

class TestMenuScreenViewProxy
{
    internal var view:XCUIElement { return app.otherElements[DEMO_TEST_MENU_SCREEN_VIEW_ACI] }
    internal var titleLabel:XCUIElement { return app.textFields[DEMO_TEST_MENU_SCREEN_TITLE_LABEL_ACI] }
    internal var button1:XCUIElement { return app.buttons[DEMO_TEST_MENU_SCREEN_BUTTON1_ACI] }
}

当然这行不通。在测试目标中找不到常量。我怎样才能使它们在该目标中可访问?

最佳答案

选择您在其中声明常量的文件并更新其目标成员资格以使其可用于测试目标

enter image description here

这是一个示例代码

import Foundation

class Constants {
    static let test = "ABCD"
}

更改其目标成员资格以使其在测试目标中可用

现在在测试目标中

override func setUp() {
    super.setUp()
    let c  = Constants.test
    // Put setup code here. This method is called before the invocation of each test method in the class.
}

关于ios - 在不同目标之间共享全局常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46580862/

相关文章:

ios - 如何使用自动布局在 UIPageViewController 中定位 subview ?

arrays - 从 CoreData 获取给定属性具有相同值的对象?

swift - 字符串(文件内容 :encoding:) aborts with exit status 139

iphone - 为什么 Xcode 不显示 UIWebView 的智能感知

ios - PresentShareDialog 返回 nil 的原因是什么?

ios - 覆盖准备方法的 Swift 发送器

ios - UIAlertController 子类问题 swift

swift - 添加自定义字体作为字体类型 SwiftUI 的扩展

ios - 将自定义字体设置为粗体

ios - Swift 打开侧边栏/菜单时调整 View 中对象的大小