Доступ к файлам iCloud Drive из приложения

Я хочу иметь поддержку iCloud в своем приложении, где я могу хранить и получать PDF-файлы. Мой вопрос: «Как получить доступ к файлу диска iCloud без использования UIDocumentPickerViewController». На самом деле я хочу иметь пользовательский список файлов в своем приложении.

я попробовал этот код

- (void) getAllFilesIniCloud
{
    queryData = [[NSMetadataQuery alloc] init];
    [queryData setSearchScopes:[NSArray arrayWithObject:NSMetadataQueryAccessibleUbiquitousExternalDocumentsScope]];
    NSPredicate *pred = [NSPredicate predicateWithFormat: @"%K like '*.'", NSMetadataItemFSNameKey];
    [queryData setPredicate:pred];
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(queryDidFinishGathering:)
                                                 name:NSMetadataQueryDidFinishGatheringNotification
                                               object:queryData];
    [queryData startQuery];
}

- (void)queryDidFinishGathering:(NSNotification *)notification
{
    NSMetadataQuery *pQuery = [notification object];
    [pQuery disableUpdates];
    [pQuery stopQuery];
    [pFilesArray removeAllObjects];
    for (NSMetadataItem *item in [query results])
    {
        NSURL *url = [item valueForAttribute:NSMetadataItemURLKey];
        NSString * name = url.lastPathComponent;

        if ([[name pathExtension] isEqualToString:@"pdf"] || [[name pathExtension] isEqualToString:@"PDF"])
        {
            NSString *fileName = [url.absoluteString lastPathComponent];

            if (url && ![pFilesArray containsObject:fileName])
            {
                [pFilesArray addObject:fileName];
            }

        }
    }
    [[NSNotificationCenter defaultCenter] removeObserver:self name:NSMetadataQueryDidFinishGatheringNotification object:pQuery];

    queryData = nil;
    [pTableView reloadData];
}

а также попробовал масштаб

NSMetadataQueryUbiquitousDataScope
NSMetadataQueryUbiquitousDocumentsScope
NSMetadataQueryAccessibleUbiquitousExternalDocumentsScope

Я знаю, что этот код отлично работает для каталога приложений в iCloud. Но если пользователь хранит файл в iCloud на Mac или через Интернет, мое приложение также должно разрешить доступ к этому файлу.


person Altaf Rehman    schedule 09.10.2015    source источник
comment
вы не можете получить список файлов и создать собственный вид.., если вы хотите показать список файлов, вам нужно использовать UIDocumentPickerViewController... или же вы можете использовать NSUbiquitousKeyValueStore   -  person Zღk    schedule 05.05.2017


Ответы (1)


У меня была та же проблема, перейдите в эту тему, чтобы уточнить в iCloud https://forums.xamarin.com/discussion/comment/283726#Comment_283726

person Ramesh yadav    schedule 30.06.2017
comment
Для этой ссылки требуется логин Xamarin. - person Leslie Godwin; 19.07.2017