在Xcode上存档时顺序使用max()和min()的Swift问题

Raf*_*cia 12 xcode archiving ios swift

在归档时"编译swift文件"步骤时,它表示特定文件有此错误:

PHI node has multiple entries for the same basic block with different incoming values!
  %31 = phi i64 [ 3, %385 ], [ %386, %385 ], [ 1, %29 ], !dbg !1370
label %385
i64 3
  %386 = phi i64 [ %23, %27 ], !dbg !1433
LLVM ERROR: Broken function found, compilation aborted!
Run Code Online (Sandbox Code Playgroud)

在评论文件的代码一段时间后,我发现以下代码行是问题:

var normalizedStrikes = max(1, strikes)
normalizedStrikes = min(normalizedStrikes, 3)
Run Code Online (Sandbox Code Playgroud)

在尝试了很多事情之后我发现我无法使用max()然后使用min(),这就是为我解决问题的原因:

var normalizedStrikes = strikes
if (normalizedStrikes <= 0) {
    normalizedStrikes = 1
}
normalizedStrikes = min(normalizedStrikes, 3)
Run Code Online (Sandbox Code Playgroud)

我发现的另一个非常好的事情是,如果我将条件更改为"<1",它会抛出相同的错误.好东西.

var normalizedStrikes = strikes
if (normalizedStrikes < 1) {
    normalizedStrikes = 1
}
normalizedStrikes = min(normalizedStrikes, 3)
Run Code Online (Sandbox Code Playgroud)

我的问题是:为什么会这样?

顺便说一句,我正在使用Xcode版本6.1.1(6A2008a)

Aar*_*ger 1

从 Xcode 6.3 (6D570) 开始,此问题已得到解决。