首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分段故障的来源在哪里: 11?

分段故障的来源在哪里: 11?
EN

Stack Overflow用户
提问于 2012-05-06 01:17:56
回答 2查看 778关注 0票数 1

请帮帮忙,这是我在这里的三个错误之一,我只是找不到它们在哪里:我知道它们与我的结构有关,但我不知道如何找到它们……下面是代码的第一部分,其中有一个错误:

代码语言:javascript
复制
-(BOOL)detectCollisionBetweenEntityAtIndex:(int)index1 andEntityAtIndex:(int)index2
{
  if ((([entityArray objectAtIndex:index1].entityX >= [entityArray objectAtIndex:index2].entityX) && ([entityArray objectAtIndex:index1].entityX <= ([entityArray objectAtIndex:index2].entityX + [entityArray objectAtIndex:index2].entityWidth)) && ([entityArray objectAtIndex:index1].entityY >= [entityArray objectAtIndex:index2].entityY) && ([entityArray objectAtIndex:index1].entityY <= ([entityArray objectAtIndex:index2].entityY + [entityArray objectAtIndex:index2].entityLength))) || (([entityArray objectAtIndex:index1].entityX + [entityArray objectAtIndex:index1].entityWidth >= [entityArray objectAtIndex:index2].entityX) && ([entityArray objectAtIndex:index1].entityX + [entityArray objectAtIndex:index1].entityWidth <= ([entityArray objectAtIndex:index2].entityX + [entityArray objectAtIndex:index2].entityWidth)) && ([entityArray objectAtIndex:index1].entityY + [entityArray objectAtIndex:index1].entityLength  >= [entityArray objectAtIndex:index2].entityY) && ([entityArray objectAtIndex:index1].entityY + [entityArray objectAtIndex:index1].entityLength <= ([entityArray objectAtIndex:index2].entityY+ [entityArray objectAtIndex:index2].entityLength))))
  {
    return TRUE;
  }
  else
  {
    return FALSE;
  }
}

entityArray是一个NSMutable数组,填充了我创建的一个结构的实例:

代码语言:javascript
复制
struct Entity
{
  int entityX;
  int entityY;
  int entityLength;
  int entityWidth;
  int entityType;
  int entitySpeed;
  bool isDead;
};
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-06 05:27:55

大致是这样的:

代码语言:javascript
复制
    -(BOOL)detectCollisionBetweenEntityAtIndex:(int)index1 andEntityAtIndex:(int)index2
    {
    bool hasDetected = false;
      if (...)
      {
        hasDetected = TRUE;
      }
        else
      {
        hasDetected = FALSE;
      }
        return hasDetected ;
      }

应该把它弄清楚!

票数 1
EN

Stack Overflow用户

发布于 2012-05-06 01:27:58

NSMutableArray只能存储Objective-C对象,而不能存储C结构。将实体包装在NSValue对象中,以将它们存储在数组中:

代码语言:javascript
复制
Entity entity;
// populate entity...

NSValue *value = [NSValue valueWithBytes:&entity objCType:@encode(struct Entity)];
[array addObject:value];

要获取返回值,请使用-[NSValue getValue:],如下所示:

代码语言:javascript
复制
NSValue *value = [array objectAtIndex:index];
Entity entity;
[value getValue:&entity];
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10464187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档