liyabo的博客

世界那么大我想去看看!


  • 首页

  • 归档

  • 标签

iOS常见crash整理

发表于 2017-07-24

1.网络类

表现
1
*** Assertion failure in -[AFJSONRequestSerializer requestWithMethod:URLString:parameters:error:]
解决方案: url中包含中文时候需要转码
1
2
3
NSString *encoded = [link stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
或者
stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]

2.UI类

表现
1
invalid mode 'kCFRunLoopCommonModes' provided to CFRunLoopRunSpecific - break on _CFRunLoopError_Run
解决方案: 退出页面时需要移除监听observe
1
[_footerView.scrollView removeObserver:self forKeyPath:@"contentSize"];

iOS常用正则式总结

发表于 2017-07-21
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#pragma 正则匹配手机号
+ (BOOL)checkTelNumber:(NSString *) telNumber
{
NSString *pattern = @"^1+[3578]+\\d{9}";
NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", pattern];
BOOL isMatch = [pred evaluateWithObject:telNumber];
return isMatch;
}
#pragma 正则匹配用户密码6-18位数字和字母组合
+ (BOOL)checkPassword:(NSString *) password
{
NSString *pattern = @"^(?![0-9]+$)(?![a-zA-Z]+$)[a-zA-Z0-9]{6,18}";
NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", pattern];
BOOL isMatch = [pred evaluateWithObject:password];
return isMatch;
}
#pragma 正则匹配用户姓名,20位的中文或英文
+ (BOOL)checkUserName : (NSString *) userName
{
NSString *pattern = @"^[a-zA-Z一-龥]{1,20}";
NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", pattern];
BOOL isMatch = [pred evaluateWithObject:userName];
return isMatch;
}
#pragma 正则匹配用户身份证号15或18位
+ (BOOL)checkUserIdCard: (NSString *) idCard
{
NSString *pattern = @"(^[0-9]{15}$)|([0-9]{17}([0-9]|X)$)";
NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", pattern];
BOOL isMatch = [pred evaluateWithObject:idCard];
return isMatch;
}
#pragma 正则匹员工号,12位的数字
+ (BOOL)checkEmployeeNumber : (NSString *) number
{
NSString *pattern = @"^[0-9]{12}";
NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", pattern];
BOOL isMatch = [pred evaluateWithObject:number];
return isMatch;
}
#pragma 正则匹配URL
+ (BOOL)checkURL : (NSString *) url
{
NSString *pattern = @"^[0-9A-Za-z]{1,50}";
NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", pattern];
BOOL isMatch = [pred evaluateWithObject:url];
return isMatch;
}
阅读全文 »

ios 切割圆角

发表于 2017-07-11

常用方法

1
2
button.layer.cornerRadius = 10.0f; //弧度
button.layer.masksToBounds = YES;

贝塞尔曲线切割

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/* 贝塞尔曲线切割 */
/**
*
* @param UIRectCorner
* 左上 UIRectCornerTopLeft = 1 << 0,
左下 UIRectCornerBottomLeft = 1 << 2,
右下 UIRectCornerBottomRight = 1 << 3,
所有角 UIRectCornerAllCorners = ~0UL
*
*/
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:button.bounds byRoundingCorners:UIRectCornerTopLeft | UIRectCornerBottomLeft cornerRadii:button.bounds.size];
CAShapeLayer *maskLayer = [[CAShapeLayer alloc]init];
//设置大小
maskLayer.frame = button.bounds;
//设置图形样子
maskLayer.path = maskPath.CGPath;
button.layer.mask = maskLayer;
阅读全文 »

iOS 自定义cell多选删除

发表于 2017-07-07
编辑模式设定
1
2
3
4
5
6
7
/**
* tableView 是否可以进入编辑状态
*
*/
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath{
return YES;
}
1
2
3
4
5
6
7
8
/**
* 设置编辑样式(如果不设置,会使用系统自带的删除方法,不能多选删除,只能单个删除. 会调用下面 注释掉的那个方法)
*
*/
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{
return UITableViewCellEditingStyleDelete | UITableViewCellEditingStyleInsert;
}
阅读全文 »

iOS开发 非常全的三方库、插件、大牛博客等等

发表于 2017-07-05

Git用法@

  • git-recipes Git recipes in Chinese. 高质量的Git中文教程.
  • lark 怎样在Github上面贡献代码
  • my-git有关 git 的学习资料
  • gitignore 非常赞 有用的.gitignore模板集合(忽略上传的文件集合),包含了各种语言.
  • Linus讲解git - Google大会演讲,Linus介绍他创造git的原因,对比了git和svn。
  • Git教程 - 廖雪峰的官方网站 - 史上最浅显易懂的Git教程!
  • git - 简明指南 - 助你入门 git 的简明指南,木有高深内容 ;)
  • 常用 Git 命令清单 - 来自阮一峰的网络日志,列出了 Git 最常用的命令。
  • Pro Git(中文版) - 书
  • Git Submodule使用完整教程 - Git Submodule功能刚刚开始学习可能觉得有点怪异,所以本教程把每一步的操作的命令和结果都用代码的形式展现给大家,以便更好的理解。
  • Git权威指南 - 书
  • git-flow 备忘清单 - git-flow 是一个 git 扩展集,按 Vincent Driessen 的分支模型提供高层次的库操作。
  • Git Magic -stanford出品
  • Atlassian Git Tutorials - atlassian出品
  • Try Git ( Interactive) -互动性的教你使用git
  • Git (简体中文)) -archlinux出品
  • Git Community Book 中文版 -这本书汇聚了Git社区的很多精华, 其目的就是帮助你尽快的掌握Git.
  • awesome-github-templates - github issue 和 pull request教程模板.
  • git-recipes -高质量的Git中文教程,来自国外社区的优秀文章和个人实践
  • git-it - GitHub一位女员工写的Git教程,繁体中文版在这里可以找到: http://jlord.us/git-it/index-zhtw.html
  • Git Town - GitTown 定义了很多高级的 git 命令,例如 git ship / git sync 等以方便 git 的使用
  • git-tips - 最常用的Git的提示和技巧。
  • 「Githug」Git 游戏通关流程 - 这个命令行工具通过游戏的方式来练习你的 Git 技能
  • progit2-zh - Pro Git,第二版,简体中文
  • git-style-guide- git风格指南
  • Git 进阶技巧 - 适合了解 Git 的基本使用,知道 commit、push、pull,希望掌握 Git 更多功能的人阅读。
  • learn-git-basics - git 指南
  • 30 天精通 Git 版本控管
  • 图解Git - 图解git中的最常用命令。如果你稍微理解git的工作原理,这篇文章能够让你理解的更透彻。
  • 沉浸式学 Git - 简洁github教程,每步信息量都不大,可以尝试一下。
  • 工作中常用的Git命令行 - 自己在工作中常用的Git命令行的小总结!
阅读全文 »

Hexo+GitHub搭建博客

发表于 2017-07-03

安装环境

安装note.js

1.首先安装homebrew

1
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2.安装note.js

1
2
3
brew link node
brew uninstall node
brew install node

安装Git

1
brew install git
阅读全文 »
12
Yabo Li

Yabo Li

倚楼听风雨,花落方知惜!

16 日志
3 标签
© 2019 Yabo Li
由 Hexo 强力驱动
主题 - NexT.Pisces