我未能正确理解如何将其转换为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符号或其他东西。这是什么?
谢谢!
答案 0 :(得分:1)
@[a,b]
是一个Objective-C数组文字,包含对象a
和b
。
@{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集合中。