Iphone 使用未声明的标识符更新

Iphone 使用未声明的标识符更新,iphone,ios,objective-c,xcode,Iphone,Ios,Objective C,Xcode,我一直在遵循一个教程,我正在努力实现正确的代码。我对Objective-C知之甚少,另一个用户在这之前的步骤中有一个错误,但他们的解决方案没有提供任何帮助。该项目的全部代码发布在下面,包括问题发生的位置 为帮助干杯 -(id) init { if( (self=[super init])) { _batchNode = [CCSpriteBatchNode batchNodeWithFile:@"Sprites.pvr.ccz"]; // 1 [self addChild:_b

我一直在遵循一个教程,我正在努力实现正确的代码。我对Objective-C知之甚少,另一个用户在这之前的步骤中有一个错误,但他们的解决方案没有提供任何帮助。该项目的全部代码发布在下面,包括问题发生的位置

为帮助干杯

-(id) init
{
if( (self=[super init])) {

    _batchNode = [CCSpriteBatchNode batchNodeWithFile:@"Sprites.pvr.ccz"]; // 1
    [self addChild:_batchNode]; // 2
    [[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"Sprites.plist"]; // 3

    _ship = [CCSprite spriteWithSpriteFrameName:@"SpaceFlier_sm_1.png"];  // 4
    CGSize winSize = [CCDirector sharedDirector].winSize; // 5
    _ship.position = ccp(winSize.width * 0.1, winSize.height * 0.5); // 6
    [_batchNode addChild:_ship z:1]; // 7
    // 1) Create the CCParallaxNode
    _backgroundNode = [CCParallaxNode node];
    [self addChild:_backgroundNode z:-1];

    // 2) Create the sprites we'll add to the CCParallaxNode
    _spacedust1 = [CCSprite spriteWithFile:@"bg_front_spacedust.png"];
    _spacedust2 = [CCSprite spriteWithFile:@"bg_front_spacedust.png"];
    _planetsunrise = [CCSprite spriteWithFile:@"bg_planetsunrise.png"];
    _galaxy = [CCSprite spriteWithFile:@"bg_galaxy.png"];
    _spacialanomaly = [CCSprite spriteWithFile:@"bg_spacialanomaly.png"];
    _spacialanomaly2 = [CCSprite spriteWithFile:@"bg_spacialanomaly2.png"];

    // 3) Determine relative movement speeds for space dust and background
    CGPoint dustSpeed = ccp(0.1, 0.1);
    CGPoint bgSpeed = ccp(0.05, 0.05);

    // 4) Add children to CCParallaxNode
    [_backgroundNode addChild:_spacedust1 z:0 parallaxRatio:dustSpeed positionOffset:ccp(0,winSize.height/2)];
    [_backgroundNode addChild:_spacedust2 z:0 parallaxRatio:dustSpeed positionOffset:ccp(_spacedust1.contentSize.width,winSize.height/2)];
    [_backgroundNode addChild:_galaxy z:-1 parallaxRatio:bgSpeed positionOffset:ccp(0,winSize.height * 0.7)];
    [_backgroundNode addChild:_planetsunrise z:-1 parallaxRatio:bgSpeed positionOffset:ccp(600,winSize.height * 0)];
    [_backgroundNode addChild:_spacialanomaly z:-1 parallaxRatio:bgSpeed positionOffset:ccp(900,winSize.height * 0.3)];
    [_backgroundNode addChild:_spacialanomaly2 z:-1 parallaxRatio:bgSpeed positionOffset:ccp(1500,winSize.height * 0.9)];
    // Add to end of init method
    [self scheduleUpdate];

    // Add new update method
    - (void)update:(ccTime)dt{

        CGPoint backgroundScrollVel = ccp(-1000, 0);
        _backgroundNode.position = ccpAdd(_backgroundNode.position, ccpMult(backgroundScrollVel, dt));

    }
    }
return self;
}
错误上下文

 // Add to end of init method
 [self scheduleUpdate];

 // Add new update method
 - (void)update:(ccTime)dt {

CGPoint backgroundScrollVel = ccp(-1000, 0);
_backgroundNode.position = ccpAdd(_backgroundNode.position, ccpMult(backgroundScrollVel, dt));

 }
导致错误的线路

  - (void)update:(ccTime)dt {

不能在其他方法中声明方法。它们必须分开。

在Objective-C中,您不能在方法内部给出方法的定义。因此,您应该将方法
update
的定义放在方法
init
之外

-(id) init
{
    if( (self=[super init]))
    {
         //Implementation of init...
          [self scheduleUpdate];
    }
    return self;
}

// Add new update method
 - (void)update:(ccTime)dt
{
     CGPoint backgroundScrollVel = ccp(-1000, 0);
     _backgroundNode.position = ccpAdd(_backgroundNode.position, ccpMult(backgroundScrollVel, dt));
 }

多亏了你们,我不知道如何插入代码,这已经解决了它