문제

이 코드 라인을 사용하여 리소스 폴더/프로젝트 번들의 이미지를 호출하는 것이 좋습니다. 또한 많은 다른 웹 사이트 자습서에서 이와 같이 사용되는 것을 볼 수 있습니다.

NSBundle *mb=[NSBundle mainBundle];


NSString *fp=[mb pathForResource:@"topimage" ofType:@"PNG"];


NSImage *image=[NSImage initWithContentsOfFile:fp];

그러나 다음 경고를 받고 있습니다.

nsimage는 +initwithContentsOffile +에 응답하지 않을 수 있습니다

NSIMAGE에 대한 문서는 InitWithContentsOffile이 실제로 작동 해야하는 방법임을 보여줍니다. 여기서 무엇이 빠질 수 있습니까?

도움이 되었습니까?

해결책

당신은 누락되었습니다 +alloc

NSImage* image = [[NSImage alloc] initWithContentsOfFile:fp];

당신은 또한 사용할 수 있습니다 +imageNamed:, 메인 번들에서 이미지를 가져옵니다.

NSImage* image = [NSImage imageNamed:@"topImage.png"];

다른 팁

initWithContentsOfFile: 인스턴스 방법이지만 해당 메시지를 NSIMAGE 클래스로 보내고 있습니다. 인스턴스로 보내야합니다. 특히 신선하게 할당 된 인스턴스.

그게 어디에 있습니다 alloc 인스턴스를 할당하는 클래스 방법입니다. init… 메시지 (대런이 보여준 것처럼).

완료되면 인스턴스를 해제하는 것을 잊지 마십시오. 나는 일반적으로 인스턴스를 입력 한 직후에 인스턴스를 자극한다. 그런 다음 Cocoa는 적절한 시간에 인스턴스를 출시합니다. 참조 코코아를위한 메모리 관리 프로그래밍 안내서 자세한 내용은.

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