Objective c CGRectIntersection需要标量类型?
我试图检查Objective c CGRectIntersection需要标量类型?,objective-c,compiler-errors,Objective C,Compiler Errors,我试图检查NSMutableArray中的对象与另一个对象的冲突(使用CGRect),但它一直说该方法需要标量类型 以下是引发错误的方法: -(void) checkSquareToCircleCollisions{ NSMutableArray *array = [squares getSquares]; for(int i = 0; i < [squares getCount]; i++){ Square *s = [array objectAtInd
NSMutableArray
中的对象与另一个对象的冲突(使用CGRect
),但它一直说该方法需要标量类型
以下是引发错误的方法:
-(void) checkSquareToCircleCollisions{
NSMutableArray *array = [squares getSquares];
for(int i = 0; i < [squares getCount]; i++){
Square *s = [array objectAtIndex: i];
CGRect rect1 = [player getRect];
CGRect rect2 = [s getRect];
//if(CGRectIntersection(rect1, rect2)){
//[player setAlive: NO];
// }
}
}
-(无效)检查方形到圆形集合{
NSMutableArray*数组=[squares getSquares];
对于(int i=0;i<[squares getCount];i++){
Square*s=[array objectAtIndex:i];
CGRect rect1=[player getRect];
CGRect rect2=[s getRect];
//if(cgrectcrossion(rect1,rect2)){
//[玩家:没有];
// }
}
}
使用,而不是cgrect
CGRectIntersectsRect
返回一个布尔值:如果矩形相交,则返回YESCGRectIntersection
返回两个矩形之间的重叠部分(如果有)
if (CGRectIntersectsRect(playerRect, squareRect)) {
player.alive = NO;
}
使用,而不是CGRectIntersection
CGRectIntersectsRect
返回一个布尔值:如果矩形相交,则返回YESCGRectIntersection
返回两个矩形之间的重叠部分(如果有)
if (CGRectIntersectsRect(playerRect, squareRect)) {
player.alive = NO;
}
作为旁注(除了Stream的修复之外),不要在getter前面加上“get”。它会破坏系统许多部分所需要的KVC。前导的“get”表示您将通过引用返回值。我编辑了代码并删除了答案。当前答案代表更好的解决方案。@Stream:可能除了修复答案中的拼写错误。您不应更改此网站上其他人代码的含义。如果您认为答案代码可能更好,请发布您自己的答案。更改问题中的代码会更改问题本身。@W'RKNCANCENTER感谢您的注释,并为过度重构感到抱歉。我会记住的。所有的
get
方法前缀是什么。这完全是非传统的。当数组有一个非常好的count
方法时,为什么还要创建一个getCount
方法呢?苹果甚至有一本值得一读的书。作为旁注(除了Stream的修复之外),不要在getters前面加上“get”。它破坏了系统许多部分所需要的KVC。前导的“get”表示您将通过引用返回值。我编辑了代码并删除了答案。当前答案代表更好的解决方案。@Stream:可能除了修复答案中的拼写错误。您不应更改此网站上其他人代码的含义。如果您认为答案代码可能更好,请发布您自己的答案。更改问题中的代码会更改问题本身。@W'RKNCANCENTER感谢您的注释,并为过度重构感到抱歉。我会记住的。所有的get
方法前缀是什么。这完全是非传统的。当数组有一个非常好的count
方法时,为什么还要创建一个getCount
方法呢?苹果甚至有一本值得一读的书。