我正试图让一个正方形出现在一系列点中的一个点上。我正在使用'Square.center = array [random integer]'来选择点。
我从不兼容的类型'id'中得到错误“Assigning to'CGPoint'(又名'struct CGPoint')”。我认为这意味着它无法在我的阵列中找到一个点。
我的阵列设置如此,从我发现的各种例子中拼凑而成。
Array = [NSArray arrayWithObjects:
[NSValue valueWithCGPoint:CGPointMake(
self.canvas.center.x,
self.canvas.center.y
)],
[NSValue valueWithCGPoint:CGPointMake(
self.canvas.center.x+55,
self.canvas.center.y
)],
[NSValue valueWithCGPoint:CGPointMake(
self.canvas.center.x-55,
self.canvas.center.y
)],
[NSValue valueWithCGPoint:CGPointMake(
self.canvas.center.x,
self.canvas.center.y+55
)],
[NSValue valueWithCGPoint:CGPointMake(
self.canvas.center.x-55,
self.canvas.center.y
)],
nil
];
如何将我的方格放在其中一个点上?后来我想在每一点都有一个相同的方格。
答案 0 :(得分:2)
您收到的错误表明它无法将NSValue的ID转换为CGPoint。在这个链接上有类似的讨论:
How can I add CGPoint objects to an NSArray the easy way?
您需要做的是从NSValue获取CGPoint。 NSValue为这种情况提供了CGPointValue。所以,从NSValue你从NSArray返回,你会调用CGPointValue方法让你最后一步。如果您有一个名为NSArray的数组和一个名为Square的C4Shape,您可以这样做:
Square.center = [array[randomInteger] CGPointValue];
其中randomInteger是你在其他地方选择的某个整数。