[iOSクラウドストレージ]leancloudネットワークストレージセット
5243 ワード
開発者にとって、使用するデータを格納するために大量のデータを使用します.明らかに初心者にとって、あるいは独立して開発した子供靴にとって、必ず無料で、しかも別のメンテナンス人員のデータベースを雇う必要はありません.明らかに私たちがよく使うデータベースのストレージ方式は捨てられます.結局、大規模なプロジェクトではありません.資金的には、専門のサーバーを使うのは浪費と贅沢ですが、独立した製品を作るには、また、中大規模な製品の開発には、自分のサーバを構築する必要があります.重要なリソースはストレージが必要です.
データストレージ1、データベースストレージ(欠点:データベースサーバは常に稼働し、メンテナンススタッフが必要)2、PHPサーバ(欠点:メンテナンススタッフが必要)3、クラウドデータベースストレージ(欠点:セキュリティが専門データベースとPHPサーバのセキュリティ係数に及ばない)
上記の3つ目は、共有するストレージ方法です.それ以外にも、他のクラウドストレージプラットフォームがあり、leancloudのデータベースストレージを選択しました.現在、彼はよく発展しており、他の大きな問題は発生していないからです.
関連ユーザテーブルの作成
以上のコードは、ユーザ情報テーブルに関連付けられた情報テーブルを作成するために使用される.
ここで注意しなければならないのは、テーブル情報を作成したことを忘れないで、saveInBackgroundWithBlock:BOOLタイプのsucceeded値をコールバックすることです.
以上のコードには2つのテーブルに関連する情報があるので、2つのsaveを使用しました.
注意:このAVObject saveAllInBackground:@[user]block:^(BOOL succeeded,NSError*error)コールバックは、次の操作を行うにはBOOLタイプのsucceeded値をコールバックすることに成功しなければならない.
leancloudを更新する方法は
leancloudの上で、私达はピクチャー、ファイル型のデータを保存して、いずれも1つのAVFileファイルの中にアップロードして、次は1つのピクチャーをアップロードしてあげます
画像/ファイルのアップロード
1、画像をデータに変換UIImageJPEGRepresentationという属性は圧縮のサイズを設定することを要求し、0.3に設定することを提案する.UIImagePNGrepresentation圧縮された画像はJPEGよりも小さいので、PNG形式の2、AVFile*file=[AVFile file file WithName:@「勝手に書くには画像接尾辞名を付けなければならない」data:data]を採用しました.
もしアップロードに成功したら、leancloudのAVFile表にアップロードした画像のアドレスを見て、ブラウザにコピーして貼り付けることができます.さっきアップロードした画像を見ることができます.アップロードに成功するとfile.url値が返されます.この値はあなたが必要とする情報です.他の表に保存することができます.これにより,ネットワークリクエスト時にこのデータを得ることができる.
もちろんleancloudにも基本的なクエリー文があり、新しい開発者は次のコードでネットワーク要求を行い、格納されたデータを得ることができます.
データの取得
以上、テーブル名で検索しました.そして取得したデータを操作する
注意:私たちが取得したのはobjectsタイプのデータで、私たちはこのデータを辞書形式に変換します【コードNSMutableDictionary*dic=obj.dictionaryForObjectを使用します;】このように取得したデータはたくさんあるので、特にきれいに見えないので、余分な不要なデータを辞書から削除しました
条件付きデータの検索
データストレージ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 ,