Использование массива, загрузка звуков в приложение для iTunes

#objective-c #ios #xcode #cocoa-touch #itunes

#objective-c #iOS #xcode #cocoa-touch #iTunes

Вопрос:

Я пытаюсь поделиться несколькими файлами с помощью iTunes file share.

Вот текущий код.

Делегировать.m

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

    // Override point for customization after application launch.

    // file sharing trying
    {
        NSString *fileName = @"Test.mp3";
        NSFileManager *fileManager = [NSFileManager defaultManager];
        NSError *error;
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *documentsDirectory = [paths objectAtIndex:0];
        NSString *documentDBFolderPath = [documentsDirectory stringByAppendingPathComponent:fileName];

        if (![fileManager fileExistsAtPath:documentDBFolderPath])
        {
            NSString *resourceDBFolderPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:fileName];
            [fileManager copyItemAtPath:resourceDBFolderPath toPath:documentDBFolderPath error:amp;error];
        }
    }

    [self.window makeKeyAndVisible];

    return YES;
}
  

На данный момент доступен только 1 звуковой файл.

Спасибо

Комментарии:

1. Этот код копирует один файл из вашего пакета в каталог documents. Где находится код, с которым у вас возникла проблема? Что вы пытаетесь сделать?

2. Я хочу поделиться более чем 1 файлом. У меня есть 5 mp3, которыми я хочу поделиться, но код использует только 1 mp3. спасибо

Ответ №1:

Поместите каждое из ваших имен файлов в NSArray:

 NSArray filesToShare = [NSArray arrayWithObjects:@"Test1.mp3",@"Test2.mp3",@"Test3.mp3",@"Test4.mp3",@"Test5.mp3",nil];

for (NSString *filename in filesToShare)
{
    ... Your existing code goes here, 
}
  

Очевидно, что вы должны перемещать части, которые идентичны каждый раз, перед циклом for (получение путей, создание файлового менеджера и т.д.).

Комментарии:

1. Привет, я попробовал код. Однако элементы сейчас не отображаются в iTunes. Приложение показывает, но никаких элементов.

Ответ №2:

Хотя это и не ответ на ваш вопрос, добавление песен в iTunes обычно выполняется с помощью Scripting Bridge.

Вы должны сгенерировать iTunes.h файл заголовка, запустив это в терминале:

 sdef /Applications/iTunes.app | sdp -fh --basename "iTunes"
  

А затем добавьте что-то подобное в свой код:

 NSString *file = @"/path/to/test.mp3";
iTunesApplication *iTunes = [SBApplication applicationWithBundleIdentifier: @"com.apple.iTunes"];
iTunesTrack *track = [iTunes add: [NSArray arrayWithObject: [NSURL fileURLWithPath: file]] to: nil];