小编Pyr*_*ttt的帖子

框架和固定大小修饰符

有什么fixedSize作用?

它只是将所有布局行为修复为等于idealWidth/吗idealHeight

如果是这样,我们可以这样说吗

frame(width: w, height:h)
Run Code Online (Sandbox Code Playgroud)

相当于

frame(minWidth: w, idealWidth:w, maxWidth: w, minWidth: h, idealWidth:h, maxWidth: h)
Run Code Online (Sandbox Code Playgroud)

或不?

layout swiftui

2
推荐指数
1
解决办法
786
查看次数

Swift defer 语句内部结构

让我们假设一个非常简单的例子:

func square() -> Int {
    var x = 5
    defer { x = 10 }
    return x
}
Run Code Online (Sandbox Code Playgroud)

为什么返回5?

我们知道 defer 只能工作到rbp消失为止。所以推迟执行直到返回。

这就是它在汇编中的样子:

output.square() -> Swift.Int:
        push    rbp
        mov     rbp, rsp
        sub     rsp, 16
        mov     qword ptr [rbp - 8], 0
        mov     qword ptr [rbp - 8], 5
        lea     rdi, [rbp - 8]
        call    ($defer #1 () -> () in output.square() -> Swift.Int)
        mov     eax, 5
        add     rsp, 16
        pop     rbp
        ret

$defer #1 () -> () …
Run Code Online (Sandbox Code Playgroud)

deferred swift

-1
推荐指数
1
解决办法
74
查看次数

标签 统计

deferred ×1

layout ×1

swift ×1

swiftui ×1