在XCode / ObjC中收到错误消息“嵌套功能已禁用,请使用-fnested”等。

这是代码(ball是指向一堆UIViews的NSMutableArray)。

CGPoint pos=[[self.balls objectAtIndex:pointidx] center];


但是以下似乎可以编译。

UIView *ref=[self.balls objectAtIndex:pointidx];
CGPoint pos=ref.center;


我应该使用“ -fnested-functions”重新启用(如果可以的话,我应该在哪里放置“ -fnested-functions”)?还是应该忍受首先创建UIView *指针的附加步骤?

最佳答案

通常,当您看到嵌套函数警告时,您真正遇到的是语法错误。

pointidx是整数,而balls是NSArray吗?另外,您是否有球馆?仅尝试balls而不是self.balls

编辑:
由于这是编译时的事情,所以我想也许它不喜欢将center传递给NSObject。如果投射对象会发生什么:

CGPoint pos=[(UIView *)([self.balls objectAtIndex:pointidx]) center];



无关的沉迷糊涂。

10-08 07:43