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
返回一个布尔值:如果矩形相交,则返回YES
CGRectIntersection
返回两个矩形之间的重叠部分(如果有)

if (CGRectIntersectsRect(playerRect, squareRect)) {
    player.alive = NO;
}
使用,而不是
CGRectIntersection

CGRectIntersectsRect
返回一个布尔值:如果矩形相交,则返回YES
CGRectIntersection
返回两个矩形之间的重叠部分(如果有)

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
方法呢?苹果甚至有一本值得一读的书。