【问题标题】:Incompatible block pointer SKSpriteNode不兼容的块指针 SKSpriteNode
【发布时间】:2015-11-07 15:02:03
【问题描述】:

这是我的代码

- (void) update:(NSTimeInterval)currentTime
{
    [self.children enumerateObjectsUsingBlock:^(SKSpriteNode * child, NSUInteger idx, BOOL *stop) {
    child.position = CGPointMake(child.position.x-self.scrollingSpeed, child.position.y);
    if (child.position.x <= -child.size.width){
        float delta = child.position.x+child.size.width;
        child.position = CGPointMake(child.size.width*(self.children.count-1)+delta, child.position.y);
        }
    }];
}

我收到一个错误

Incompatible block pointer types sending 'void (^)(SKSpriteNode *__strong, NSUInteger, BOOL *)' to parameter of type 'void (^ _Nonnull)(SKNode * _Nonnull __strong, NSUInteger, BOOL * _Nonnull)'

我不知道为什么。我尝试将其更改为SKNode,但它说大小不存在。

任何想法将不胜感激。

【问题讨论】:

  • 您需要使用完整且准确的错误消息更新您的问题。发布错误消息时切勿缩写它们。
  • @rmaddy 抱歉,我现在就添加!
  • 根据错误,只需将SKSpriteNode改为SKNode即可。

标签: ios objective-c skspritenode


【解决方案1】:

枚举块语法不正确,需要更改:

 [self.children enumerateObjectsUsingBlock:^(SKSpriteNode * child, NSUInteger idx, BOOL *stop)
{
    child.position = CGPointMake(child.position.x-self.scrollingSpeed, child.position.y);
    if (child.position.x <= -child.size.width)
    {
       float delta = child.position.x+child.size.width;
       child.position = CGPointMake(child.size.width*(self.children.count-1)+delta, child.position.y);
    }
}];

 [self.children enumerateObjectsUsingBlock:^(id object, NSUInteger idx, BOOL *stop)
 {
    SKSpriteNode *child = (SKSpriteNode *)object;
    child.position = CGPointMake(child.position.x-self.scrollingSpeed, child.position.y);
    if (child.position.x <= -child.size.width)
    {
       float delta = child.position.x+child.size.width;
       child.position = CGPointMake(child.size.width*(self.children.count-1)+delta, child.position.y);
    }
}];

枚举块的第一个参数的类型是id 而不是SKSpriteNodeNSArray 没有这样的实现。

【讨论】:

  • 谢谢它现在完美运行!非常感谢。我开始使用 swift 进行更多开发,但我想试试 OBJ-C!
  • @JamesAnderson:使用 Obj C 进行愉快的编码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-22
  • 1970-01-01
  • 2018-07-18
相关资源
最近更新 更多