将Objective-C代码块转换为Swift

时间:2015-02-23 01:08:39

标签: ios objective-c swift ios8

我未能正确理解如何将其转换为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符号或其他东西。这是什么?

谢谢!

1 个答案:

答案 0 :(得分:1)

@[a,b]是一个Objective-C数组文字,包含对象ab

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

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