Я занимаюсь разработкой класса в Objective C, который содержит два массива audioFiles и files . Массив Files содержит все имена аудиофайлов, а audioFiles представляет собой массив для хранения AVAudioFile, сгенерированного из элементов в массиве файлов.
Я хочу создать экземпляр обоих массивов при создании экземпляра класса.
AudioPlayer * player = [[AudioPlayer alloc] init];
Но я не могу создать экземпляр массива audioFiles, поскольку он ничего не показывает (ноль). Я поместил оба массива в реализацию, потому что я не хочу показывать эти два массива за пределами моего класса.
Не могли бы вы помочь мне решить проблему?
#import <AVFoundation/AVFoundation.h>
#import "AudioPlayer.h"
@implementation AudioPlayer
{
NSMutableArray *audioFiles;
NSArray *files;
}
- (instancetype)init
{
self = [super init];
if (self) {
files = [NSArray arrayWithObjects:@"one", @"two", @"three",@"four", nil];
[self createAudioFiles];
}
return self;
}
-(void) createAudioFiles{
for (int i = 0; i < [files count]; i++) {
NSString *audioPath = [[NSBundle mainBundle] files[i] ofType:@"wav"];
NSURL *url = [NSURL fileURLWithPath:audioPath];
AVAudioFile *file = [[AVAudioFile alloc] initForReading:url error:nil];
[audioFiles addObject:file];
}
}
@end