2013-03-25 4 views
0

URL에서 이미지를 CCSprite에 표시하고 있습니다. 많은 이미지가 있고 그러므로 나는 아주 빨리 이미지를로드 할 필요가있다. 시뮬레이터에서 잘 작동하지만 iPad에서 충돌 한 코드를 작성했습니다. 이제 장치 로그에서 아무 것도 이해할 수 없습니다.ccsprite의 URL에서 이미지를로드하는 방법

내 코드 : 여기

NSData *d = [NSData dataWithContentsOfURL:[NSURL URLWithString:[Data valueForKey:[NSString stringWithFormat:@"%d", idx]]]]; 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *filePath = [NSString stringWithFormat:@"%@ %@", documentsDirectory, string]; 
BOOL didWrite = [d writeToFile:filePath atomically:YES]; 
CCSprite * facebookImage = [[CCSprite alloc] initWithFile:filePath] ; 

내가 파일에 내 이미지를 저장하고 CCSprite에 그 내용을 제공하고있다.

URL의 이미지가 시뮬레이터에서 제대로 가져 오지만 기기에서이 코드가 충돌합니다. P.S : 다른 방법도 있지만 잘 작동하지 않아 NSRequest 등보다이 방법이 더 좋습니다.

답변

0

코드를 통해 단일 단계로 중단 점을 설정하십시오. 경로에 파일 이름 (형식 문자열 : "%@ %@") 앞에 공백이 있거나 문자열이 nil이므로 쓰기가 실패합니다.

이미 실수로 didWrite 플래그가있는 경우 쓰기 (및 다운로드)가 성공하면 스프라이트를 만드는 if 절이 있어야하며, 그렇지 않으면 오류를 기록하고 자리 표시 자 스프라이트를 만들 수 있습니다.

+0

안녕하세요, 고맙습니다 대답하지만 시뮬레이터에서 모두 잘 작동하고 내 질문에서 언급 한 것처럼 응용 프로그램에 추락했습니다. 그 다음에 중단 점을 넣는 방법? 또한이 것은 파일 이름에 데이터가 들어 있는지 확인하는 것입니다. 따라서 시뮬레이터에서 작동했습니다. 앱에서 종종 장치에서 충돌하는 대소 문자를 구별하는 가장 일반적인 문제가 있습니까? – xrnd

+0

중단 점 설정 방법을 모르는 경우 xcode 문서를 읽으십시오. 이것은 세미콜론만큼 프로그래밍의 기본입니다. – LearnCocos2D

+0

나는 프로그램에서 가장 기본적인 무언가 인 중단 점을 앱에 넣는 방법을 알고있다. 하지만 장치에 충돌이 발생하면 Xcode에 중단 점을 넣을 수있는 방법이 없습니다. 참고 : 그것은 시뮬레이터에서 작동합니다. 시뮬레이터에서 실행되는 동안 중단 점을 넣으면 아무런 문제가 없습니다. – xrnd

0

URL의 이미지를 CCSprite에 표시하려면 접근 방식을 변경했습니다.

UIImage *uiimage2 = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:urlString]]; 
CCSprite * facebookImage = [[CCSprite alloc]initWithCGImage:uiimage2.CGImage key:string]; 

이 대답이 도움이 되었기를 바랍니다.

관련 문제