将 Objective-C 代码块转换为 Swift

Converting an Objective-C block of code into Swift

我没能正确理解如何将其转换为 Swift 表示法。有人可以帮我吗?我显然需要提高我的 Objective-C 理解 :(

// Setup coach marks
    NSArray *coachMarks = @[
        @{
            @"rect": [NSValue valueWithCGRect:(CGRect){{0,0},{45,45}}],
            @"caption": @"Helpful navigation menu"
        },
        @{
            @"rect": [NSValue valueWithCGRect:(CGRect){{10.0f,56.0f},{300.0f,56.0f}}],
            @"caption": @"Document your wedding by taking photos"
        }
];

我只是不确定 [{}] 是什么意思。数组中的数组?它几乎看起来像 JSON 符号或其他东西。这是什么?

谢谢!

@[a,b] 是一个包含对象 ab.

的 Objective-C 数组文字

@{akey:avalue, bkey:bvalue} 是 Objective-C 字典文字。

(CGRect){{0,0},{45,45}} 创建一个 CGRect。 In Swift CGRect(origin: CGPoint(x: 0, y: 0), size: CGSize(width: 45, height: 45)) 将是直接翻译,尽管有更短的形式来做同样的事情。作为一个结构,它需要包装在一个 NSValue 对象中以放入 Objective-C 集合中。