ios - 无法访问 Sprite 的用户数据属性

标签 ios objective-c xcode cocoa-touch cocos2d-iphone

在我的项目中,我有 10 个 Sprite ,每个 Sprite 都有一个唯一的 userData 值。在 ccTouch 方法中,我正在将一个 Sprite 复制到新 Sprite ,

但我无法获取 Sprite 用户数据值。

我的代码是

 for (int i=1; i<=10; i++)
      {
       CCSprite *zig=[CCSprite spriteWithFile:[NSString stringWithFormat:@"zig%d.png",i]];
        zig.position=ccp(325,60);
        zig.tag=i+1;
        zig.userData=[NSString stringWithFormat:@"%@",[zigpositionarray objectAtIndex:i-1]];
        [self addChild:zig z:2];
       [zigblurarray addObject:zig];
            NSLog(@"Userdata%@",zig.userData);
      }

在cctouchBegan方法中:

  for(CCSprite *s in zigblurarray)
  { 
   if (CGRectContainsPoint(s.boundingBox, Newpt1))
   {
       temp=s;
       temp.userData=s.userData;
       NSLog(@"%d",temp.tag);
        NSLog(@"Userdata%@",temp.userData);
    }

最后我遇到了 lldb 错误

0x170409b: movl 8(%edx), %edi EXC_BAD_ACCESS

请任何人帮助我解决这个问题。

最佳答案

字符串是自动释放的。 userData 属性的类型为 void*,不会保留该对象。请改用 userObject 属性(如果在您的 cocos2d 版本中可用)或保留字符串。

关于ios - 无法访问 Sprite 的用户数据属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16117518/

相关文章:

ios - 如何将字符串中的整数数组转换为字符串数组?

整个应用程序的 iOS 数据访问

javascript - React/React Native onLayout 用于 subview

objective-c - iOS 8 Mapkit Objc 无法获取用户位置

iOS UI 测试链接器错误

ios - Swift如何在播放暂停后保持锁定屏幕音频控件可用

ios - AES128 加密 CBC/NoPadding Objective-C

iPhone 开发 : How to build a custom view hierarchy?

xcode - 运行项目时Xcode5.0.2崩溃

ios - 获取存储在应用程序文档文件夹中的文件内容