从不兼容类型'id'

时间:2016-08-16 18:46:42

标签: ios objective-c

我有NSMutableArray CGPoint。当我尝试将对象添加到CGPoint变量时,我看到了这个错误:

  

从不兼容的类型'id'分配'CGPoint'(又名'struct CGPoint')

这是我的代码:

targetView.center = [arrayWithCoord objectAtIndex:1];

我尝试了Xcode建议的方式:

targetView.center = *((__bridge CGPoint *)([arrayWithCoord objectAtIndex:1]));

我也试过这个:

targetView.center = ((NSValue *)arrayWithCoord[0]).CGPointValue;

在所有情况下,我都有targetView.center = {0 , 0}

我绝对相信数组不是空的。请参阅我的NSLog s:

  

2016-08-17 00:41:40.760 newword [16497:819894]元素NSPoint:{154.5,   31}

     

2016-08-17 00:41:40.760 newword [16497:819894]元素NSPoint:{197.5,   31}

     

2016-08-17 00:41:40.760 newword [16497:819894]元素NSPoint:{240.5,   31}

     

2016-08-17 00:41:40.761 newword [16497:819894]目标中心结果{0,   0}

感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

它表示从CGPoint删除*

你写的是

 CGPoint *

CGPoint 

并使用

NSValue *val = [arrayWithCoord objectAtIndex:0];
CGPoint p = [val CGPointValue];

然后将p分配给targetView.center

或仅仅迈出一步

CGPoint p = [arrayWithCoord[0] CGPointValue];

答案 1 :(得分:2)

您尝试更改的target是什么?

从阵列中的NSValue展开CGPoint的代码应该可以正常工作。您可以通过将其分配给临时变量,打印它,然后将其指定为center来对此进行测试。

例如,将中心设置为像@{3,5}这样的任意点吗?