ios - 不兼容的 block 指针 SKSpriteNode

标签 ios objective-c skspritenode

这是我的代码

- (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 但它说大小不存在。

任何想法将不胜感激。

最佳答案

枚举 block 语法不正确,需要修改:

 [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);
    }
}];

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

关于ios - 不兼容的 block 指针 SKSpriteNode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33584180/

相关文章:

ios - Xcode 9.2 的正确应用程序图标 (appicon) 命名约定是什么?

objective-c - 在 Objective-c iPhone 中的图像上写入文本,模拟器的字体大小与 iPhone 本身不同

c - ObjC 中的 long long int

ios - 为什么我的 Sprite 节点没有在我的通用应用程序上调整大小?

android - iPhone 和 Android phonegap 应用程序的移动应用程序分析 : Google Analytics or Flurry?

ios - 在 Swift 中从另一个 ViewController 访问变量

ios - 在 iOS 上, "add to homepage"缓存保存在哪里,如何清除它?

ios - Objective-C : several categories on one class

ios - 如何使我的 spriteNode 纹理通用?

swift - SpriteKit : Node On Top Of Another Node