• 利用LeanCloud来实现注册账号,存储账号以及,登录时查询账号是否正确.集成方式很简单可以看这里的官方文档.地址是这里: https://leancloud.cn/docs/

  • 在这里创建应用,以及设置一个应用自己的数据库.非常方便.还可以看到你的应用访问数据的次数等等.

  • 首先根据官方文档集成官方sdk包以后再appdelegate中进行授权(一切按照官方指示)

  • 进入正题.先上代码.

  • // AppDelegate.m文件


//
// AppDelegate.m
// LoginView
//
// Created by 裴波波 on 16/4/21.
// Copyright © 2016年 裴波波. All rights reserved.
// #import "AppDelegate.h"
#import <AVOSCloud/AVOSCloud.h> @interface AppDelegate () @end @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // applicationId 即 App Id,clientKey 是 App Key。
//这里的id 以及 key 都是在leancloud中创建应用以后提供的,用来访问leancloud统计以及授权
[AVOSCloud setApplicationId:@"GCyStwB6xVWMfvLiGktfTu4p-gzGzoHsz "
clientKey:@"bNJj02mLLUbtbQyExkCLw9yM"];
//跟踪应用打开情况
[AVAnalytics trackAppOpenedWithLaunchOptions:launchOptions];
return YES;
} @end
  • 主控制器中

//
// ViewController.m
// LoginView
//
// Created by 裴波波 on 16/4/21.
// Copyright © 2016年 裴波波. All rights reserved.
// #import "ViewController.h"
#import <AVOSCloud/AVOSCloud.h>
#import "PBViewController.h"
@interface ViewController () @property (weak, nonatomic) IBOutlet UITextField *txtUserName; @property (weak, nonatomic) IBOutlet UITextField *txtPassword; @end @implementation ViewController #pragma mark - 注册用户
- (IBAction)clcikRegisterUsers:(id)sender { //获取用户输入字符
NSString * name = self.txtUserName.text;
NSString * pwd = self.txtPassword.text;
NSLog(@"name : %@ pwd : %@",name,pwd); //将注册内容 异步 写到云
dispatch_async(dispatch_get_global_queue(0, 0), ^{
AVObject *post = [AVObject objectWithClassName:@"PBBUsers"];
[post setObject:pwd forKey:name];
[post saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
if (succeeded) {
// 保存成功了!
NSLog(@"账户保存成功");
}
}];
});
} #pragma mark - 点击登录
- (IBAction)clcikLoginBtn:(id)sender { //获取用户输入字符
NSString * name = self.txtUserName.text;
NSString * pwd = self.txtPassword.text;
NSLog(@"name : %@ pwd : %@",name,pwd); //异步访问网络验证账号密码
dispatch_async(dispatch_get_global_queue(0, 0), ^{ //联网查询用户名密码
//数据查询
AVQuery *query = [AVQuery queryWithClassName:@"PBBUsers"];
// [query whereKey:@"words" equalTo:@"Hello World!"];
[query whereKey:name equalTo:pwd];
[query getFirstObjectInBackgroundWithBlock:^(AVObject *object, NSError *error) {
// object 就是符合条件的第一个 AVObject
if (error) {
NSLog(@"%@",error);
NSLog(@"账号或者密码错误");
return;
}
NSString * str = object[@"words"];
NSLog(@"%@",str); //跳转到主线程执行
dispatch_async(dispatch_get_main_queue(), ^{
PBViewController * vc = [PBViewController new];
[self.navigationController pushViewController:vc animated:YES];
});
}];
});
}
  • 这里的注意点是: 当点击登录按钮时要进行网络访问数据,看云存储的账号与密码是否匹配.是一个耗时操作,要异步执行否则会堵塞主线程,卡主界面.
  • 第二点:由于要跳转控制器,要把跳转控制器的代码放在主队列中执行,并且是异步执行,主队列同步执行会造成死锁,也就是 线程相互等待,而卡住主线程.

- (void)viewDidLoad { [super viewDidLoad];
//测试存储
// AVObject *post = [AVObject objectWithClassName:@"TestObject"];
// [post setObject:@"Hello World!" forKey:@"words"];
// [post saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
// if (succeeded) {
// // 保存成功了!
// }
// }];
} //-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
//
// //数据查询
// AVQuery *query = [AVQuery queryWithClassName:@"TestObject"];
// [query whereKey:@"words" equalTo:@"Hello World!"];
// [query getFirstObjectInBackgroundWithBlock:^(AVObject *object, NSError *error) {
// // object 就是符合条件的第一个 AVObject
// if (error) {
// NSLog(@"%@",error);
// return;
// }
// NSString * str = object[@"words"];
// NSLog(@"%@",str);
// }];
//} - (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
} @end

访问网络要异步执行,主队列要异步执行,同步会卡住,死锁

ios每日一发--Leanclude数据云存储以及登录 注册账户的更多相关文章

  1. ios每日一发--仿侧边抽屉效果

    效果图如下 代码实现以及思路下面分析: 代码创建导航控制器 Appdelegate.m中 #import "AppDelegate.h" #import "ViewCon ...

  2. iOS开发——数据持久化Swift篇&iCloud云存储

    iCloud云存储 import UIKit class ViewController: UIViewController { override func viewDidLoad() { super. ...

  3. iOS学习之应用数据存储1-属性列表、偏好设置、NSKeyedArchiver归档

    iOS应用数据存储的常用方式(持久化方式) 属性列表(plist)归档(XML文件) Preference(偏好设置) NSKeyedArchiver归档(NSCoding) SQLite3 Core ...

  4. iOS数据持久化存储:归档

    在平时的iOS开发中,我们经常用到的数据持久化存储方式大概主要有:NSUserDefaults(plist),文件,数据库,归档..前三种比较经常用到,第四种归档我个人感觉用的还是比较少的,恰恰因为用 ...

  5. 云方案,依托H3C彩虹云存储架构,结合UIA统一认证系统,实现了用户数据的集中存储和管理

    客户的声音 资料云项目在迷你云基础上二次开发,通过使用云存储技术及文件秒传技术,对文件进行统一存储与管理,以达到节约文件管理成本.存储成本目的:通过有效的文件版本控制机制,以达到风险管控的目的:通过多 ...

  6. iOS开发之CoreData数据存储

    iOS开发之CoreData数据存储 参考资料:https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/CoreD ...

  7. ios关于数据的存储

    本文转载至http://blog.csdn.net/chen505358119/article/details/9278539             这里我总结了一下数据的存储方式,一是保存在沙盒里 ...

  8. iOS数据持久化存储

    本文中的代码托管在github上:https://github.com/WindyShade/DataSaveMethods 相对复杂的App仅靠内存的数据肯定无法满足,数据写磁盘作持久化存储是几乎每 ...

  9. IOS的四种数据存储方式及优劣

    IOS有四种经常使用数据存储方式: 第一种方法:用NSUserDefaults存储配置信息 NSUserDefaults被设计用来存储设备和应用的配置信息.它通过一个工厂方法返回默认的.也是最经常使用 ...

随机推荐

  1. BZOJ1036[ZJOI2008]树的统计Count 题解

    题目大意: 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w.有一些操作:1.把结点u的权值改为t:2.询问从点u到点v的路径上的节点的最大权值 3.询问从点u到点v的路径上的节点的权值和 ...

  2. 20145308刘昊阳 《Java程序设计》第6周学习总结

    20145308刘昊阳 <Java程序设计>第6周学习总结 教材学习内容总结 第10章 输入/输出 10.1 InputStream与OutputStream 10.1.1 串流设计概念 ...

  3. Coder-Strike 2014 - Finals (online edition, Div. 2) B. Start Up

    需要满足的条件是 (1)每个字母是对称的 (2)每个字符串是对称的 #include <iostream> #include <algorithm> #include < ...

  4. ACM: SGU 101 Domino- 欧拉回路-并查集

    sgu 101 - Domino Time Limit:250MS     Memory Limit:4096KB     64bit IO Format:%I64d & %I64u Desc ...

  5. 【BZOJ】2078: [POI2004]WYS

    题意: 给n个互不相交的多边形(边均平行于坐标轴),问最大深度.深度的定义是,若多边形A被多边形B包含,则\(dep[A]=max(dep[B])+1\).坐标系的深度为0.(n<=40000, ...

  6. 【BZOJ】1132: [POI2008]Tro

    题意 给\(n(1 \le n \le 3000)\)个点,求所有三角形的面积和. 分析 首先枚举一个点,发现把其它点按照关于这个点的极角排序后第\(i\)个点关于前面\(1\)到\(i-1\)的点组 ...

  7. HDU 4433 locker(SPFA+DP)

    题目链接 去年区域赛的题目,早就看过题目了,又是过了好久了... 这题状态转移,一看就知道应该是 线性的那种,不过细节真的不好处理,一直没想出怎么搞,期间也看过题解,好像没太看懂... dp[i][j ...

  8. js小效果-全选

    <!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...

  9. MySQL数据库迁移(转)

    MySQL数据库迁移(数据文件直接迁移) 在今年10月下旬的时候,公司的服务器需要迁移,其中涉及到了MySQL数据库迁移.查看了一下MySQL数据文件的大小,接近60G的大小(实际数据并没用那么多). ...

  10. 【android异步处理】一个关于android异步处理的文章系列

    最近读了Android异步处理系列文章索引,感觉这个文章系列写得不错!可以作为参考