leancloud網絡存儲,個人開發者福利。快速入門


門戶網址:https://leancloud.cn


對於開發者來說,我們會使用大量數據來存儲將用到的數據。顯然對於新手,或者做獨立開發的童鞋來說,是必定會需要免費,並且不需要另聘維護人員的數據庫的,顯然我們常用的數據庫存儲方式會被摒棄掉,畢竟不是做大型項目,從資金上來說,使用專門的服務器都太過浪費和奢侈,但是對於做獨立產品,以及中大型產品的開發來說,是肯定會需要建立自己的服務器的,畢竟有重要資源需要存儲。

數據存儲
1、數據庫存儲(缺點:數據庫服務器需要一直運行,並且需要維護人員)
2、PHP服務器(缺點: 需要維護人員)
3、雲數據庫存儲(缺點:安全性比不上專門數據庫和PHP服務器的安全係數)



關聯用戶表的創建

    //==============創建用戶信息========================//
    //用戶信息必須唯一
    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值。

由於以上的代碼有關聯兩個表的信息,所以我使用了兩個save

注意:這個AVObject saveAllInBackground:@[user] block:^(BOOL succeeded, NSError *error) 回調,必須成功返回回調一個BOOL類型的succeeded值才能進行下面的操作,並且一定要使用 【 saveAllInBackground】進行回調,Background後面跟數組,也就是表名

更新leancloud的方式是

 [self editinfoWithusername:更新的屬性字符串 daysocrce:更新的屬性字符串 integral:更新的屬性字符串];

在leancloud上面,我們存儲圖片、文件型的數據,都會上傳到一個AVFile文件裏面,下面一上傳一個圖片來舉個��

圖片/文件的上傳

  //  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 fileWithName:@"隨便寫必須加上圖片後綴名" 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網絡存儲的基本使用代碼,都特別實用




發佈了17 篇原創文章 · 獲贊 2 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章