将形状移动到存储在C4中的NSArray中的随机点

时间:2013-10-08 06:00:27

标签: ios objective-c arrays shapes c4

我正试图让一个正方形出现在一系列点中的一个点上。我正在使用'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
        ];

如何将我的方格放在其中一个点上?后来我想在每一点都有一个相同的方格。

1 个答案:

答案 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是你在其他地方选择的某个整数。