在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];
无关的沉迷糊涂。