문제

iPhone 앱에서는 목표 C 파일 및 이미지가 포함 된 정적 라이브러리와 연결하고 있습니다. 정적 라이브러리에서 이미지를로드 할 수 있습니까? 나는 시도했다

[UIImage imageNamed:[[NSBundle mainBundle] pathForResource:@"imageName" ofType:@"png"]];

그러나 분명히 이미지는 메인 번들에 있지 않으며 정적 라이브러리에 있으며 NSBundle 클래스는 메인 번들과 알려진 경로가있는 번들에만 액세스 할 수있는 것 같습니다. iPhone의 정적 라이브러리에서 이미지를로드하는 방법이 있습니까?

도움이 되었습니까?

해결책

"이미지는 정적 라이브러리에서 [...]의 의미가 확실하지 않습니다. 정적 라이브러리는 일반 파일 (.A 확장자 포함)이며 아카이브 객체 파일이 포함되어 있습니다. 반면에 번들은 디렉토리 계층 (실행 파일 및 기타 리소스 포함)입니다.

정적 라이브러리를 연결하면 라이브러리의 코드가 실행 파일에 직접 포함됩니다. 애플리케이션 번들에 파일이 복사되지 않으므로 이미지를 복사 할 방법이 없습니다.

정적 라이브러리가있는 이미지 파일이있는 경우 Xcode의 대상에 사본 파일 빌드 단계를 추가하여 응용 프로그램 번들에 간단히 복사 할 수 있습니다.

다른 팁

가장 간단한 방법은 이미지를 인라인 문자 배열에 저장하는 것입니다.

const char imageData[] = { 0x00, 0x01, 0xFF, ... };

그리고 나중에 필요할 때 :

UIImage *image = [UIImage imageWithData:[NSData dataWithBytesNoCopy:imageData length:sizeof(imageData) freeWhenDone:NO]];

이미지의 이진 데이터 (PNG 또는 JPEG로 저장된 후)를 수동으로 문자 배열로 변환해야합니다 (또는 스크립트를 작성).

정적 라이브러리 복사 파일 빌드 단계에서 절대 경로를 사용하고 클라이언트 애플리케이션을 가리십니까? 나는 이와 같은 것을 시도했지만 이미지에 액세스 할 수 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top