[iOSクラウドストレージ]leancloudネットワークストレージセット

5243 ワード

開発者にとって、使用するデータを格納するために大量のデータを使用します.明らかに初心者にとって、あるいは独立して開発した子供靴にとって、必ず無料で、しかも別のメンテナンス人員のデータベースを雇う必要はありません.明らかに私たちがよく使うデータベースのストレージ方式は捨てられます.結局、大規模なプロジェクトではありません.資金的には、専門のサーバーを使うのは浪費と贅沢ですが、独立した製品を作るには、また、中大規模な製品の開発には、自分のサーバを構築する必要があります.重要なリソースはストレージが必要です.
データストレージ1、データベースストレージ(欠点:データベースサーバは常に稼働し、メンテナンススタッフが必要)2、PHPサーバ(欠点:メンテナンススタッフが必要)3、クラウドデータベースストレージ(欠点:セキュリティが専門データベースとPHPサーバのセキュリティ係数に及ばない)
上記の3つ目は、共有するストレージ方法です.それ以外にも、他のクラウドストレージプラットフォームがあり、leancloudのデータベースストレージを選択しました.現在、彼はよく発展しており、他の大きな問題は発生していないからです.
関連ユーザテーブルの作成
    //====================================================      ==========================================
    //        
    AVUser *user = [AVUser user];//    AVUser     
    user.username = @"Bell";//      
    user.password =  @"ssa4f3434";//     
    user.email = @"[email protected]";//     
    
   AVObject *theGAME = [[AVObject alloc] initWithClassName:@"TheGame"];       
   [theGAME setObject:@"0" forKey:@"Today_score"];
   [theGAME setObject:@"0" forKey:@"user_integral"];
   [theGAME setObject:@"Bell" forKey:@"playname"];
    
    [AVObject saveAllInBackground:@[user] block:^(BOOL succeeded, NSError *error) {
        if (error) {
            NSLog(@"    ");
        }else{
          AVRelation *relation = [theGAME relationforKey:@"theuser"];
         [relation addObject:user];
         [theGAME saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
               if (succeeded) {
                 NSLog(@"    ");
                 [self addpropertyWith:@"Bell"];
             }else{
                NSLog(@"    ");
              }
         }];

     }
    }];

以上のコードは、ユーザ情報テーブルに関連付けられた情報テーブルを作成するために使用される.
ここで注意しなければならないのは、テーブル情報を作成したことを忘れないで、saveInBackgroundWithBlock:BOOLタイプのsucceeded値をコールバックすることです.
以上のコードには2つのテーブルに関連する情報があるので、2つのsaveを使用しました.
注意:このAVObject saveAllInBackground:@[user]block:^(BOOL succeeded,NSError*error)コールバックは、次の操作を行うにはBOOLタイプのsucceeded値をコールバックすることに成功しなければならない.
leancloudを更新する方法は
 [self editinfoWithusername:         daysocrce:         integral:        ];

leancloudの上で、私达はピクチャー、ファイル型のデータを保存して、いずれも1つのAVFileファイルの中にアップロードして、次は1つのピクチャーをアップロードしてあげます
画像/ファイルのアップロード
  //  NSData *data = UIImageJPEGRepresentation([UIImage imageNamed:@"234.jpg"], 1.0);
    NSData *data = UIImagePNGRepresentation([UIImage imageNamed:@"10.png"]);
    AVFile *file = [AVFile fileWithName:@"thpic.png" data:data];
    [file saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
        NSLog(@"    %@", file.url);//        Url   
            if (succeeded) {
                                NSLog(@"      ");
                            }else{
                                NSLog(@"    ");
                            }
    }];

1、画像をデータに変換UIImageJPEGRepresentationという属性は圧縮のサイズを設定することを要求し、0.3に設定することを提案する.UIImagePNGrepresentation圧縮された画像はJPEGよりも小さいので、PNG形式の2、AVFile*file=[AVFile file file WithName:@「勝手に書くには画像接尾辞名を付けなければならない」data:data]を採用しました.
もしアップロードに成功したら、leancloudのAVFile表にアップロードした画像のアドレスを見て、ブラウザにコピーして貼り付けることができます.さっきアップロードした画像を見ることができます.アップロードに成功するとfile.url値が返されます.この値はあなたが必要とする情報です.他の表に保存することができます.これにより,ネットワークリクエスト時にこのデータを得ることができる.
もちろんleancloudにも基本的なクエリー文があり、新しい開発者は次のコードでネットワーク要求を行い、格納されたデータを得ることができます.
データの取得
    AVQuery *query = [AVQuery queryWithClassName:@"  "];
    [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
        for (AVObject *obj in objects) {
            NSMutableDictionary *dic = obj.dictionaryForObject;
            [dic removeObjectForKey:@"className"];
            [dic removeObjectForKey:@"createdAt"];
            [dic removeObjectForKey:@"objectId"];
             [dic removeObjectForKey:@"updatedAt"];
            [dic removeObjectForKey:@"__type"];
            [self.dataarry addObject:dic];
            NSLog(@"%@",dic);
        }
        
    }];

以上、テーブル名で検索しました.そして取得したデータを操作する
注意:私たちが取得したのはobjectsタイプのデータで、私たちはこのデータを辞書形式に変換します【コードNSMutableDictionary*dic=obj.dictionaryForObjectを使用します;】このように取得したデータはたくさんあるので、特にきれいに見えないので、余分な不要なデータを辞書から削除しました
条件付きデータの検索
    AVQuery *query = [AVQuery queryWithClassName:@"  "];
    [query whereKey:@"   " hasPrefix:@"   "];
        [query selectKeys:@[@"  "]];
        query.limit = 1;//    
        [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
            for (AVObject *avobject in objects) {
                NSMutableDictionary *dic = avobject.dictionaryForObject;
                [dic removeObjectForKey:@"className"];
                [dic removeObjectForKey:@"createdAt"];
                [dic removeObjectForKey:@"objectId"];
                [dic removeObjectForKey:@"updatedAt"];
                [dic removeObjectForKey:@"__type"];
                NSLog(@"%@",dic);
            }
        }];
    leancloud           ,