0

このエラーが発生する理由はよくわかりませんが、.h ファイルを調べたところ、xCode がこのエラーをスローしている理由がわかりません。

// on "init" you need to initialize your instance
-(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
}
return self;
// 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)];

}

4

1 に答える 1

1

まず第一に、C2D が魔法のようにreturn働き方を変えない限り、あなたは ing の後returnに到達できない多くのことをしなければなりません。あなたはちょうどreturn編集しました。メソッドを終了しました。それは、画家に作業中の部屋を出て、その日のうちに家に帰るように言うようなものです...そして、壁を赤く塗るように何も言わずに叫びます. 実際、あなたはまったく叫ぶことができません。次に例を示します。

- (void) foo {
    int x = 10;
    return; //return control to caller
    self->someValue = x; //never done; we've returned
}

x10人が割り当てられ、その後戻ってきます。それ以降の行は無意味です。第二に、ここにこの行があります。

 CGSize winSize = [CCDirector sharedDirector].winSize;

ifステートメント内で発生します。変数は、宣言しwinSizeたステートメントの制約内でのみ使用できifます。それは、他のものの「範囲外」です。たとえば、次の場合も同じ警告が表示されます。

- (void) bar {
    if (0){
        int x = 1;
    }
    int y = x;
}

ループが閉じる直前に、以下のすべてのものをループreturn内に配置しないのはなぜですか?if

于 2012-11-07T00:37:59.187 に答える