サーバー構築不要!スマートフォンアプリ向けの新クラウド

トップ >ドキュメント >SDKガイド(iOS):ファイルストア

SDKガイド(iOS)

ドキュメント内検索

ファイルストア

このドキュメントは更新されていません。
こちらから最新版をご覧ください。

ファイルストアへのアップロード

以下のようにしてファイルストアへのアップロードを行います。

NSData *data = [@"NIFTY Cloud mobile backend" dataUsingEncoding:NSUTF8StringEncoding];
NCMBFile *file = [NCMBFile fileWithName:@"ncmb.txt" data:data];
[file save:nil];

画像データを扱う場合には、一度NSDataに変換したものをNCMBFileオブジェクトとしてセットします。

// imageはUIImage
NSData *pngData = [[NSData alloc] initWithData:UIImagePNGRepresentation(image)];
NCMBFile *file = [NCMBFile fileWithData:pngData];
[file saveInBackgroundWithBlock:nil];

進捗状況の取得

以下のように、アップロードの進捗状況を取得することができます。

NSData *data = [@"NIFTY Cloud mobile backend" dataUsingEncoding:NSUTF8StringEncoding];
NCMBFile *file = [NCMBFile fileWithName:@"ncmb.txt" data:data];
[file saveInBackgroundWithBlock:^(NSError *error) {
    //保存処理が完了したら呼び出されるBlock
} progressBlock:^(int percentDone) {
    // 進捗状況を取得するためのBlock
    //1 - 100 のpercentDoneを返す
    //このコールバックは保存中に何度も呼ばれる。
}];

ファイルを取得する

ファイルストアに保存したものを取得するには、getDataメソッドを利用します。
getDataInBackgroundメソッドでの非同期処理も可能です。
ファイルの取得時には、ファイル名を先に取得する必要があるので、
以下の2通りが考えられます。

ファイル名を指定して取得する

あらかじめファイル名を指定したNCMBFileオブジェクトを作成し、データを取得することができます。

- (void) testDownloadFileWithFileName {
    NCMBFile *fileData = [NCMBFile fileWithName:@"test.png" data:nil];
    [fileData getDataInBackgroundWithBlock:^(NSData *data, NSError *error) {
        if (!error){
            UIImage *image = [[UIImage alloc] initWithData:data];
            UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
            UIWindow *window = [UIApplication sharedApplication].keyWindow;
            [window addSubview:imageView];
        } else {
            NSLog(@"error:%@",error);
        }
    }];
}

ファイル検索を利用する

クエリを取得して、ファイルストアを検索することができます。

- (void)testDowonloadFile {
    NCMBQuery *query = [NCMBFile query];
    [query whereKey:@"fileName" equalTo:@"test.png"];

    NSArray *files = [query findObjects:nil];
    for (NCMBFile *file in files){
        [file getDataInBackgroundWithBlock:^(NSData *data, NSError *error) {
            if (!error){
                UIImage *image = [[UIImage alloc] initWithData:data];
                UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
                UIWindow *window = [UIApplication sharedApplication].keyWindow;
                [window addSubview:imageView];

            } else {
                NSLog(@"error:%@",error);
            }
        }];
    }
}

ファイルの削除

deleteメソッドを利用して、ファイルを削除することができます。

[file deleteInBackgroundWithBlock:nil];

お探しの内容が見つからなかった場合はユーザーコミュニティ もご活用ください。(回答保証はいたしかねます)
なお、 Expertプラン以上のお客様はテクニカルサポートにてご質問を承らせて頂きます。

推奨画面サイズ1024×768px以上

ページの先頭へ