【发布时间】:2016-10-27 22:42:04
【问题描述】:
我的代码在 Swift 2.2 上运行良好,但在转换为 Swift 3 之后,我输入了一个包含 41 个值(并非全部显示在那里)的数组,就像编译器拒绝的变量一样。我收到一条错误消息,告诉我“表达式太复杂,无法在合理的时间内解决,请考虑将表达式分解为不同的子表达式”。
let staticPos = [CGPoint(x:523,y:409),CGPoint(x:723,y:407),CGPoint(x:922,y:401),
CGPoint(x:1122,y:409),CGPoint(x:1335,y:401),CGPoint(x:1542,y:409),
CGPoint(x:523,y:496),CGPoint(x:726,y:504),CGPoint(x:922,y:489),
CGPoint(x:1132,y:497),CGPoint(x:1355,y:489),CGPoint(x:1552,y:505),
CGPoint(x:514,y:587),CGPoint(x:705,y:595),CGPoint(x:910,y:587),
CGPoint(x:1122,y:595),CGPoint(x:1345,y:587),CGPoint(x:1551,y:603), CGPoint(x:524,y:698),
CGPoint(x:724,y:689),CGPoint(x:922,y:690),
CGPoint(x:1122,y:706),CGPoint(x:1345,y:690),CGPoint(x:1551,y:706)]
如何在我的数组中输入所有这些值以便编译器接受它们?
谢谢,
【问题讨论】:
-
如何创建单独的 CGPoints,然后将它们添加到数组中,例如
[p1, p2, p3, p4...pn]wherep1=CGPointMake(x:523,y=409)? -
@vadian 的解决方案很好(这是问题的核心;
CGPoint重载太多,编译器会感到困惑),但我也会打开雷达(bugreport.apple.com ) 来提出这个问题。