1


今日から実装を開始しUIDocumentPickerViewControllerましたが、レンガの壁にぶつかりました。ドキュメントをインポートしてそれを提供するNSURLためにそれを取得しましたが、iWork ドキュメントを使用すると、使用する NSData が null になります。おそらく、iWork ドキュメントはファイルではなくディレクトリであり、StackOverflow に関する他の質問をいくつか調べましたが、それらのどれも、それらを圧縮する以外の解決策を助けたり提供したりしていないようです。それぞれの iWork アプリで共有シートを使用すると、正常に動作します。

これが私のコードです:

    NSArray* components = [[url lastPathComponent] componentsSeparatedByString:@"."];

    NSData* data = [[NSData alloc] initWithContentsOfURL:url];

    NSString* filename = [[[url lastPathComponent] stringByReplacingOccurrencesOfString:[components lastObject] withString:@""] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];


    NSString* newPath = [NSString stringWithFormat:@"%@/tmpFiles/%@%@",[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0],filename,[components lastObject]];
    [data writeToFile:newPath atomically:YES];

    [self.files addObject:[NSURL fileURLWithPath:newPath]];
    [self updateFileCount];

他の誰かがこの問題を解決する方法を見つけましたか? ありがとう。

4

1 に答える 1

0

タイプが .pages または .numbers のドキュメントは、単一のファイルではなく、バンドルです。したがって、-dataWithContentsOfURL: でそれらを読み取ることはできません。

-copyItemAtURL:toURL:error: (NSFileManager) でコピーを確認しましたか?

于 2016-05-19T09:08:27.890 に答える