I have created a Singleton class to act as an audio player that will start the audio upon launch, and can be turned off from another class.
In the other class, when I call
[[Singleton singleton] audioPlayer stop];
It gives me the error
'Expected :'
I understand OOP but I don't think I've ever tried to access an object of an object. Any ideas?
// Singleton.m
#import "Singleton.h"
@implementation Singleton
#pragma mark Singleton Methods
+ (id)sharedManager {
static Singleton *singleton = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
singleton = [[self alloc] init];
});
return singleton;
}
- (id)init {
if (self = [super init]) {
boy = false;
girl = false;
NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/Mathletics Theme.mp3", [[NSBundle mainBundle] resourcePath]]];
NSError *error;
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
audioPlayer.numberOfLoops = -1;
audioPlayer.volume = 0.85f;
if (audioPlayer == nil)
NSLog([error description]);
else
[audioPlayer play];
audioPlayer.numberOfLoops = -1;
if (audioPlayer == nil)
NSLog([error description]);
else
[audioPlayer play];
}
return self;
}
@end
// Singleton.h
#import <Foundation/Foundation.h>
#import <AVFoundation/AVFoundation.h>
@interface Singleton : NSObject {
AVAudioPlayer *audioPlayer;
}
@property (nonatomic, retain) AVAudioPlayer *audioPlayer;
+ (id)singleton;
@end