UIFileSharingEnabled просто сохраняет файлы

В моем приложении iOS я хотел бы, чтобы пользователь мог загрузить какой-либо файл jpg через iTunes. Поэтому я включил UIFileSharingEnabled. Но теперь пользователи могут помещать файлы в мое приложение. Я хотел бы заблокировать это. Есть ли способ сделать это ?

Спасибо !


person Pierre    schedule 16.08.2011    source источник


Ответы (1)


Не думайте, что вы можете заблокировать его, но вы можете просто удалить ненужные файлы, когда ваше приложение станет активным.

Поместите код, похожий на приведенный ниже пример, — заполните тест, чтобы избежать удаления файлов, которые вы хотите сделать доступными в iTunes.

Вызовите это из applicationDidBecomeActive: в своем делегате приложения.

Если вы более осторожны, вы можете проверить, не сбросил ли пользователь файл jpg с тем же именем, что и тот, который вы там припарковали. Вы можете проверить одинаковость даты или что-то в этом роде, или, если у вас не так много файлов, просто удалите все и запишите их снова, когда приложение станет активным.

- (void) removeUnwantedFiles;
{    
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];

    NSArray* directoryContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:inboxPath error:NULL];

    if (!directoryContents || [directoryContents count] == 0)
    {
        return;
    }

    for (NSString* fileName in directoryContents)
    {
        if ( /* some test of filename to see if it's one of my kosher files */ ) continue;

        NSString* filePath = [documentsDirectory stringByAppendingPathComponent:fileName];
        NSError* error = nil;
        BOOL success = [[NSFileManager defaultManager] removeItemAtPath:filePath error:&error];
        // NSLog(@"Deleting (%@): %@", success ? @"succeeded" : @"failed", [filePath lastPathComponent]);
        if (!success)
        {
            NSLog(@"Error: %@", [error localizedDescription]);
        }
    }
}
person Obliquely    schedule 16.08.2011