我有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}
感谢您的帮助!
答案 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}
这样的任意点吗?