0

私の iOS アプリでは、ユーザーが iTunes 経由で jpg ファイルをダウンロードできるようにしたいと考えています。だから私はUIFileSharingEnabledを有効にしました。しかし、ユーザーは私のアプリにファイルを入れることができるようになりました。私はそれをブロックしたいと思います。それを行う方法はありますか?

ありがとう !

4

1 に答える 1

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]);
        }
    }
}
于 2011-08-16T17:40:41.087 に答える