내가 미리로드하고 내 오디오 파일 (sfx 및 음악 모두)에 액세스 할 때 사용하는 싱글 톤을 사용 중입니다. AppDelegate에서 [[FGAudio sharedInstance] preload];
을 실행하기 시작했으나 사용하기 전에 미리로드를 기억해야한다는 걱정이있었습니다. 하나씩 일어나는 것. 내 질문은 것들을 자동으로 만드는 것입니다, 내 설정을하고 init에 미리로드 할 수있는 싱글 톤에 대한 방법에 액세스 할 수 있습니까, 아니면 것들이 여전히 시작되면서 init 메소드에 액세스하는 것이 현명하지 않습니까?init에서 self에 액세스하는 방법?
+ (FGAudio *)sharedInstance {
static FGAudio *sharedAudio = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedAudio = [[FGAudio alloc]init];
});
return sharedAudio;
}
.
- (id)init {
self = [super init];
if(self) {
[self preload];
}
return self;
}
Joel, 내가 처음에 가지고 있었던 것이 사실이다. :) 이것이 없으면 미리로드되지 않은 싱글 톤을 생성 할 수 있다는 것을 알게되었다. 이것이 개인 코드이므로 그렇게 할 생각은 없지만 잘못 생각한 것입니다. 해명 해줘서 고마워. – fuzzygoat
앞으로이 답변을 접할 수있는 사람을위한 부수적 인 말처럼 [FGAudio sharedInstance]도 추가했습니다. AppDelegate 메서드 응용 프로그램 : didFinishLaunchingWithOptions : 응용 프로그램이 시작될 때 단독 개체가 설정되고 미리로드되는지 확인합니다. – fuzzygoat