【问题标题】:Accessing iCloud Drive files from app从应用程序访问 iCloud Drive 文件
【发布时间】:2016-01-07 11:42:50
【问题描述】:

我想在我的应用程序中支持 iCloud,我可以在其中存储和获取 PDF 文件。 我的问题是“如何在不使用UIDocumentPickerViewController 的情况下访问 iCloud 驱动器文件”。实际上我想在我的应用程序中有自定义文件列表。

我试过这段代码

- (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 中的应用程序目录。但是,如果用户在 Mac 中或通过网络将文件存储在 iCloud 中,那么我的应用程序也应该能够访问该文件。

【问题讨论】:

  • 您无法获取文件列表并制作自定义视图..,如果您想显示需要使用 UIDocumentPickerViewController 的文件列表...否则您可以使用 NSUbiquitousKeyValueStore

标签: ios objective-c icloud-drive


【解决方案1】:

我有同样的问题,请通过这个帖子在 iCloud 上澄清 https://forums.xamarin.com/discussion/comment/283726#Comment_283726

【讨论】:

  • 此链接需要 Xamarin 登录。
猜你喜欢
  • 2016-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-16
  • 2017-07-03
  • 2019-12-16
  • 1970-01-01
  • 2018-02-01
相关资源
最近更新 更多