ARC 사용 cocos2d 프로젝트에서 EXC_BAD_ACCESS 오류가 발생 했습니까?

Vignesh Kumar

저는 raywnderlich 샘플 프로젝트따라 첫 번째 cocos2d 애플리케이션을 시작했습니다.

그 응용 프로그램에서 이동 대상은 아래와 같이 추가됩니다.

-(void)addMonster
{    
    __strong CCSprite * monster = [CCSprite spriteWithFile:@"monster.png"];
    CGSize winSize=[CCDirector sharedDirector].winSize;
    int minY=monster.contentSize.height/2;
    int maxY=winSize.height-minY;
    int rangY=maxY-minY;
    int actualY=(arc4random()%rangY)+minY;

    monster.position=ccp(winSize.width+monster.contentSize.width, actualY);
    [self addChild:monster];
    monster.tag=1;
    int minDuration=2.0;
    int maxDuration=4.0;
    int actualDuration=(arc4random()%(maxDuration-minDuration))+minDuration;

    CCMoveTo *actionMove=[CCMoveTo actionWithDuration:actualDuration
                                             position:ccp(-monster.contentSize.width/2, actualY)];
    CCCallBlock *actionDone=[CCCallBlock actionWithBlock:^(CCSprite *node){
        [node removeFromParentAndCleanup:YES];// crashed at this point
        [_monsters removeObject:node];

    }];
    [monster runAction:[CCSequence actions:actionMove,actionDone,nil]];
    [_monsters addObject:monster];
}

그리고 CCLayerColor 하위 클래스 (장면)의 -init 메서드에서 위의 메서드를 아래와 같이 예약합니다.

-(id)init
{ 
    // player adding code
    [self schedule:@selector(gameLogic) interval:1.0];
}
-(void)gameLogic
{
    [self addMonster];
}

즉, ipad 화면의 왼쪽에서 오른쪽 끝으로 이동

내 문제는 노드 개체에 액세스하는 동안 응용 프로그램이 CCCallBlock에서 충돌하는 것입니다.

소스를 다운로드하는 대신 시작 지점에서 단계를 복제하려고 계획했지만 여전히 릴리스되는 위치를 찾을 수 없습니다. 동료들을 도와주세요

업데이트 :-충돌시 스크린 샷을 게시했습니다. 여기에 이미지 설명 입력 여기에 이미지 설명 입력

배우다 Cocos2D

문제는 사용중인 블록이 예상되는 인터페이스를 따르지 않는다는 것입니다. CCCallBlock동작은 매개 변수가없는 블록을 예상하지만 매개 변수 (노드)를 수신하도록 블록을 정의했습니다. 이것이 컴파일된다는 것에 놀랐습니다. 물론 전달 된 노드는 가비지 포인터가되고 액세스 할 때 충돌합니다.

CCCallBlockN블록이 CCNode*포인터를 매개 변수로 사용 하는 이 사용을 수정하려면 :

CCCallBlockN *actionDone = [CCCallBlockN actionWithBlock:^(CCNode *node){
    // ...
    }];

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

String (format :)에 % 1 $ s를 사용할 때 왜 EXC_BAD_ACCESS가 발생합니까?

분류에서Dev

std :: transform을 사용하면 왜 exc_bad_access가 발생합니까?

분류에서Dev

objc 런타임 라이브러리에서 class_replaceMethod를 사용하여 함수를 스위 즐링 할 때 ARC가 EXC_BAD_ACCESS를 발생시키는 이유는 무엇입니까?

분류에서Dev

Android Studio에서 Cocos 2d-x 프로젝트를 컴파일 할 때 오류가 발생했습니다.

분류에서Dev

생성자에서 릴리스하면 EXC_BAD_ACCESS가 발생하는 이유는 무엇입니까?

분류에서Dev

이 동적 문자열 생성에서 고정 된 숫자 이후에 exc_bad_access 오류가 발생하는 이유는 무엇입니까?

분류에서Dev

ARC를 사용하여 프로젝트에 C 라이브러리를 추가 할 때 발생하는 오류

분류에서Dev

iOS 앱에서 스레드 4 오류 발생 : 사용자 지정 Tensorflow tflite 모델을 사용하는 EXC_BAD_ACCESS (코드 = 1, 주소 = 0x0)

분류에서Dev

iOS 앱에서 스레드 4 오류 발생 : 사용자 지정 Tensorflow tflite 모델을 사용하는 EXC_BAD_ACCESS (코드 = 1, 주소 = 0x0)

분류에서Dev

Angular 2 프로젝트에서 ng serve 명령을 실행하는 동안 오류가 발생했습니다.

분류에서Dev

NotificationCenter가 시뮬레이터에서는 EXC_BAD_ACCESS를 발생하지만 장치에서는 발생하지 않는 이유가 있습니까?

분류에서Dev

CFDictionaryGetValue에서 EXC_BAD_ACCESS 발생

분류에서Dev

nativescript-oauth2를 nativescript vue 프로젝트로 가져 오는 중에 오류가 발생했습니다.

분류에서Dev

테스트 서버에 응용 프로그램을 배포하는 중에 오류가 발생 했습니까?

분류에서Dev

ARC가있는 UITableView의 EXC_BAD_ACCESS 오류?

분류에서Dev

Lambda가 cocos2d에서 Spawn 및 Actions를 복사 할 수 없습니까?

분류에서Dev

Visual Studio Code에서 COMReferences를 사용하여 프로젝트를로드하는 동안 OmniSharp 오류가 발생했습니다.

분류에서Dev

node express.js 프로젝트에서 mongoose를 사용하여 문서를 저장하는 동안 오류가 발생했습니다.

분류에서Dev

내 프로젝트에서 UIKit을 사용하려고하지만 오류가 발생합니다.

분류에서Dev

인스턴스 메서드에서 super에 액세스하면 어떻게 EXC_BAD_ACCESS가 발생할 수 있습니까?

분류에서Dev

cocos2d "사용 가능한 플랫폼이 없습니다"오류

분류에서Dev

cocos2d "사용 가능한 플랫폼이 없습니다"오류

분류에서Dev

dismissViewControllerAnimated는 iOS 7.1에서만 EXC_BAD_ACCESS를 발생시킵니다.

분류에서Dev

openshift 프로젝트에 변경 사항을 푸시 할 때 오류가 발생했습니다.

분류에서Dev

cocos2d-x 프로젝트는 Android 스튜디오에서 빌드하는 동안 오류가 발생합니다.

분류에서Dev

qt를 사용하여 프로젝트를 만들 때 오류가 발생했습니다.

분류에서Dev

WAMP 2.5 : 로컬 호스트에서 프로젝트를 열면 "웹 페이지를 사용할 수 없습니다"라는 오류가 발생합니까?

분류에서Dev

C # Access에서 INNER JOIN을 사용하는 동안 오류가 발생했습니다.

분류에서Dev

Webpack에서 로더를 사용하면 오류가 발생했습니다.

Related 관련 기사

  1. 1

    String (format :)에 % 1 $ s를 사용할 때 왜 EXC_BAD_ACCESS가 발생합니까?

  2. 2

    std :: transform을 사용하면 왜 exc_bad_access가 발생합니까?

  3. 3

    objc 런타임 라이브러리에서 class_replaceMethod를 사용하여 함수를 스위 즐링 할 때 ARC가 EXC_BAD_ACCESS를 발생시키는 이유는 무엇입니까?

  4. 4

    Android Studio에서 Cocos 2d-x 프로젝트를 컴파일 할 때 오류가 발생했습니다.

  5. 5

    생성자에서 릴리스하면 EXC_BAD_ACCESS가 발생하는 이유는 무엇입니까?

  6. 6

    이 동적 문자열 생성에서 고정 된 숫자 이후에 exc_bad_access 오류가 발생하는 이유는 무엇입니까?

  7. 7

    ARC를 사용하여 프로젝트에 C 라이브러리를 추가 할 때 발생하는 오류

  8. 8

    iOS 앱에서 스레드 4 오류 발생 : 사용자 지정 Tensorflow tflite 모델을 사용하는 EXC_BAD_ACCESS (코드 = 1, 주소 = 0x0)

  9. 9

    iOS 앱에서 스레드 4 오류 발생 : 사용자 지정 Tensorflow tflite 모델을 사용하는 EXC_BAD_ACCESS (코드 = 1, 주소 = 0x0)

  10. 10

    Angular 2 프로젝트에서 ng serve 명령을 실행하는 동안 오류가 발생했습니다.

  11. 11

    NotificationCenter가 시뮬레이터에서는 EXC_BAD_ACCESS를 발생하지만 장치에서는 발생하지 않는 이유가 있습니까?

  12. 12

    CFDictionaryGetValue에서 EXC_BAD_ACCESS 발생

  13. 13

    nativescript-oauth2를 nativescript vue 프로젝트로 가져 오는 중에 오류가 발생했습니다.

  14. 14

    테스트 서버에 응용 프로그램을 배포하는 중에 오류가 발생 했습니까?

  15. 15

    ARC가있는 UITableView의 EXC_BAD_ACCESS 오류?

  16. 16

    Lambda가 cocos2d에서 Spawn 및 Actions를 복사 할 수 없습니까?

  17. 17

    Visual Studio Code에서 COMReferences를 사용하여 프로젝트를로드하는 동안 OmniSharp 오류가 발생했습니다.

  18. 18

    node express.js 프로젝트에서 mongoose를 사용하여 문서를 저장하는 동안 오류가 발생했습니다.

  19. 19

    내 프로젝트에서 UIKit을 사용하려고하지만 오류가 발생합니다.

  20. 20

    인스턴스 메서드에서 super에 액세스하면 어떻게 EXC_BAD_ACCESS가 발생할 수 있습니까?

  21. 21

    cocos2d "사용 가능한 플랫폼이 없습니다"오류

  22. 22

    cocos2d "사용 가능한 플랫폼이 없습니다"오류

  23. 23

    dismissViewControllerAnimated는 iOS 7.1에서만 EXC_BAD_ACCESS를 발생시킵니다.

  24. 24

    openshift 프로젝트에 변경 사항을 푸시 할 때 오류가 발생했습니다.

  25. 25

    cocos2d-x 프로젝트는 Android 스튜디오에서 빌드하는 동안 오류가 발생합니다.

  26. 26

    qt를 사용하여 프로젝트를 만들 때 오류가 발생했습니다.

  27. 27

    WAMP 2.5 : 로컬 호스트에서 프로젝트를 열면 "웹 페이지를 사용할 수 없습니다"라는 오류가 발생합니까?

  28. 28

    C # Access에서 INNER JOIN을 사용하는 동안 오류가 발생했습니다.

  29. 29

    Webpack에서 로더를 사용하면 오류가 발생했습니다.

뜨겁다태그

보관