小编ImJ*_*Lol的帖子

JavaOptional.ifPresentOrElse 带返回值

Optional在Java中,我最近开始在我的代码中更多地采用这种类型。这允许更好的null值处理并且在某种程度上也更安全的代码。Optional具有ifPresentOrElse允许您在存在值时执行特定操作或在不存在值时执行特定操作的方法。但是,此方法不允许您声明返回类型。

有没有一种简单的方法可以ifPresentOrElse在展开时使用可选值和类似方法来返回值Optional

java null nullable option-type

11
推荐指数
2
解决办法
4万
查看次数

Swift:OSLog/os_log 未显示在控制台应用程序中

我正在使用 XCode 10.3 构建一个 Swift 5 应用程序。为此,我有一个框架,其中包含日志系统的实现(用于调试目的)。此日志系统的默认实现基于 OSLog/os_log。在消费应用程序中使用系统时,控制台应用程序中不会出现任何日志。但是,在放置断点时,我可以看到已到达os_log语句(请参阅下面的代码示例)并且将正确的参数传递给os_log函数。但是,当我在主机应用程序中使用 os_log 或 NSLog 时,它们确实会出现。

我已经验证这不是LogSystem/DefaultLogImplementation类型的问题,因为所有需要命中的断点都被命中,并且所有单元测试都是绿色的。此外,os_log语句到达并执行,但日志不出现。我已经验证所有消息都显示在控制台应用程序中,我已经验证我选择了正确的设备,我已经尝试了多个过滤器(甚至在没有启用过滤器的情况下挖掘了所有日志)......

任何人都可以帮助/指出可能是什么问题吗?我目前怀疑 OSLog/os_log 的实现中存在错误。

代码示例

应用端代码,使用类似于下面提供的示例的代码

class SomeClass {
    private let logSystem = LogSystem()

    func doSomethingImportant() {
        // Do important stuff and log the result
        logSystem.debug("Finished process with result \(result)")
    }

}
Run Code Online (Sandbox Code Playgroud)

应用程序使用的框架端代码

public class LogSystem {

    private let logImplementation: LogImplementation

    init(_ logImplementation: LogImplementation = DefaultLogImplementation()) {
        self.logImplementation = logImplementation
    }

    public func debug(_ message: String) {
        logImplementation.log(message, …
Run Code Online (Sandbox Code Playgroud)

logging swift

9
推荐指数
2
解决办法
3154
查看次数

如何将 XCTest 依赖与生产/主要目标联系起来?

我正在尝试在 Swift 中为 XCTest 框架编写扩展。为此,我创建了一个具有两个目标的项目:主/生产目标和测试目标。

当我为 XCTest 编写扩展时,我还需要在我的主要/生产目标中导入 XCTest。但是,我很难这样做。当我在 Xcode 中单击我的项目,然后选择主要目标,转到 Build Phases, Link Binary With Libraries 并在那里添加 XCTest 时,出现编译错误:

ld:找不到框架 XCTest clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

我也尝试了此处提供的解决方案,但不幸的是也不起作用。

xcode xctest swift

6
推荐指数
1
解决办法
1518
查看次数

标签 统计

swift ×2

java ×1

logging ×1

null ×1

nullable ×1

option-type ×1

xcode ×1

xctest ×1