
笔记
韩刀刀
这个作者很懒,什么都没留下…
展开
-
弹出框(警告框)iOS9.0使用方法
在iOS9.0之前,使用弹出框的方法就是UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"警告框很简单" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:@"按钮一",@"按钮二",@"按钮三", nil];[alert show];之后要具原创 2016-07-16 10:21:26 · 1673 阅读 · 0 评论 -
GCD的一些应用知识点
本篇各种零散的点,是自己在看杰哥教学视频时整理的知识点。GCD队列 - 主队列 - 串行队列 - 并行队列[x] FIFO [x] 线程安全在串行队列里dispatch_sync会直接crash (DISPATCH_CLIENT_CRASH)。因为在代码走到这里直接就进入crash,而不会再往下走,进入wait了。内部临界区: 只能有一个线程或是特定的线程执行的一段代码。外部临界区:原创 2017-12-13 15:30:31 · 187 阅读 · 0 评论 -
MVVM笔记
简单的概念就不多说了,都有所了解。没见过也听过。在面试复习的时候,知道这是什么东西,但是当自己在使用时,出现了无从下手的感觉。自己记录自己要记得东西,一些具体实施的东西。ViewModel是通过“绑定”方式与View交互的。好处:代码复用单元测试绑定方式:单向数据绑定双向数据绑定 channelTerminal集合数据绑定执行过程绑定错误处理实施步骤: 1. 创建base Vi原创 2017-12-14 16:07:45 · 188 阅读 · 0 评论 -
冷热信号
冷热信号区别:热信号是主动的,即使你没有订阅事件,它仍然会时刻推送而冷信号是被动的,只有当你订阅的时候,它才会发送消息热信号可以有多个订阅者,是一对多,信号可以与订阅者共享信息而冷信号只能一对一,当有不同的订阅者,消息会重新完整发送,热信号像是一个广播。冷信号像是一个模板,不同的订阅者会生成一个实例热信号会被所有此刻已订阅的地方各执行一次,以后订阅的地方会错过之前的消息一个很重要的概念原创 2017-12-25 18:08:03 · 337 阅读 · 0 评论 -
RAC一些操作(取消,更新UI,cell去除脏数据)
在subscribe的三个方法中sendNext方法执行完毕继续进行sendNext;再有错误信息时,执行error方法,执行完毕之后,进行执行disposableBlock;completed方法执行完毕之后,也进行执行disposableBlock;后面两个方法都是在执行之后,自动执行disposableBlock进行取消订阅。在执行disposableBlock块的时候,会执行RACDi原创 2017-12-27 11:01:22 · 1218 阅读 · 0 评论 -
《Effective Objective C 2.0 编写高质量iOS与OS X代码的52个有效方法》读书笔记
第一章 熟悉Objective-C第1条:了解OC起源 消息结构,运行时所执行代码有运行时环境决定,而函数调用,则有编译器决定。第2条:类的头文件中尽量少引用其他头文件 向前声明 @class 的好处: 1、是延迟引入,减少类的使用者所需的引入的头文件数量 2、解决类之间的相互引用第3条:多用字面量语法,少用与之等价的方法 NSNumber *number =原创 2018-01-25 11:13:02 · 281 阅读 · 0 评论 -
【Python】网络请求
Python 使用强大的Requests网络库。安装pip install requests导入import requests使用get请求r = requests.get('https://api.github.com/events')post请求r = requests.post('http://httpbin.org/post', ...原创 2018-09-05 17:23:30 · 146 阅读 · 0 评论 -
【Python】json格式化
要写json文件 json文件格式 json中文乱码问题 1、首先,我们想要写入的文件是json文件,使用json.dump方法写入。with open(jsonFile, "w") as f: json.dump(response_file, f)response_file 是你要写的内容,jsonFile是你json的文件名。2...原创 2018-09-03 20:40:13 · 2645 阅读 · 0 评论 -
【Python】 命令行加参数
$ python requestTest.py -g 3701 -m 65758sys.argv 是命令行参数列表。sys.argv[0] 表示脚本名。def printArgs(argv): groupId = '' mockId = '' try: # 这里的 h 就表示该选项无参数,g:表示 g选项后需要有参数 o...原创 2018-09-14 16:58:36 · 413 阅读 · 0 评论 -
【Python】扫描当前目录下所有文件
有时我们需要遍历我们当下文件夹所有文件,我们就可以使用os.walk()这个方法。//root为当前目录//dirs为当前目录及子目录下所有文件夹//files为当前目录及子目录下所有文件for root, dirs, files in os.walk('.', topdown=True): for dic in dirs: if dic == 'src'...原创 2018-09-14 17:09:57 · 1913 阅读 · 0 评论 -
Git操作
git命令 说明 git init 将目录变为可以管理的仓库(Xcode自带git功能,所以创建好的项目文件是直接可以进行管理的仓库。) git add 将文件加入到仓库(加到暂存区),一般使用git add . 将所有文件加入 git commit 将文件提交到仓库(加到当前分支),-m “xxx” , 后面添加自己的说明 git status 查看仓库情况原创 2017-12-12 14:21:42 · 190 阅读 · 0 评论 -
数据持久化
一、文件 二、UserDefault 三、SQLite 四、keychain 五、coredata 六、归档化UserDefault 1. 应用域(domain) 一般NSUserDefault内使用setValue:forKeyPath方法时,存储的数据存入了应用域2. 注册域 仅有较低的优先权,应用域没找到在此找3. 全局域 系统设置预言域包括地区,日期参数域原创 2017-12-11 20:48:36 · 158 阅读 · 0 评论 -
下拉刷新(UIRefreshController)功能实现
首先定义一个刷新控件:@property (nonatomic, strong)UIRefreshControl *refresh;_refresh = [[UIRefreshControl alloc] init]; 设置属性与添加控件://设置提示标题_refresh.attributedTitle = [[NSAttributedString alloc] initWithString:@原创 2016-07-18 14:27:51 · 791 阅读 · 0 评论 -
时间选择器(UIDatePicker)和自定义选择器(UIPickView)
首先看一个时间选择器 本时间选择器是建立在弹出视图上的,也可以在普通视图上显示。 定义一个弹出框(具体的弹出框功能可以在我的另一篇文章可见)://本方法是一个按钮的点击事件-(void)customTime{ UIAlertController *alert; if (!alert) { alert = [UIAlertController alertContr原创 2016-07-18 15:31:21 · 2701 阅读 · 0 评论 -
【笃行】keychain的安全性
iOS的keychain服务提供了一种安全的保存私密信息(密码,序列号,证书等)的方式,每个iOS程序都有一个独立的keychain存储。相对于NSUserDefaults、文件保存等一般方式,keychain保存更加安全,而且keychain里保存的信息不会因APP被删除而丢失,所以重装APP后,keychain里的数据还能使用。我们可以把keychain理解为一个Dictionary,原创 2017-03-10 10:29:33 · 1070 阅读 · 0 评论 -
【笃行】Button的选中与改变
在项目中有时会遇到有几个Button,当选中其中一个Button时,状态颜色变为选中状态,其他的为不选中状态。 再次点击选中状态的Button状态不改变(依旧是选中状态)。针对这种情况,需要创建使用一个全局的Button属性。@property(nonatomic,strong)UIButton *tempButton;一般会有默认选中的Button,所以在默认的Button处写上 _lif原创 2017-03-13 15:37:50 · 1462 阅读 · 0 评论 -
【力学】self关键字
self总是指向调用该方法的对象。self总是代表当前类的对象,当self出现在某个方法体中时,它代表的对象是不确定的,但是类型是确定的,它所代表的对象就是当前类的实例;当这个方法被调用时,它所代表的对象就确定下来了:谁在调用这个方法,self就代表谁。self.xxx 和_xxx的区别_.xxx是对属性的直接引用,不通过setter和getter方法。 self.xxx是通过访问方法的引用(包含原创 2017-03-14 23:47:51 · 343 阅读 · 0 评论 -
【笃行】首页scrollview上滑动,Button状态改变
在做一个scrollView上有两个tableView时,想左滑右滑时tableView会滑动切换,在这里需要注意的是: 1、scrollView 的 contentsize 高度可以设置为0 ,这样就不会在滑动时出现上下晃动; 2、scrollView的属性pagingEnabled = yes,这样在滑动时就会一页一页的滑动; _homeScrollView = [[UIScroll原创 2017-09-05 20:57:17 · 482 阅读 · 0 评论 -
【笃行】iOS 开发中的问题
在做西邮图书馆时遇到的一些问题。1、在TableView创建好之后,cell什么的都已经初始化完毕,cell上不显示数据 原因:在numberOfRowsInSection中返回的数组为空。 解决:检查自己的dataArray是不是有数据。2、没有数据的时候不显示tableView的分割线 解决:self.tableView.tableFooterView = [[UIView alloc]i原创 2017-09-09 13:40:01 · 201 阅读 · 0 评论 -
内存管理
引用计数法:持有时+1,释放时-1,当引用计数为0时,进行dealloc。 四法则: - 自己生成对象,自己持有(alloc,copy….) - 非自己生成对象也可以持有 - 自己不持有时,需要释放 - 非自己持有对象,无法释放MRC ,ARCMRC是我们自己手动添加retain,release。ARC是编译器的特性,自动插入retain和release。循环引用MRC:原创 2017-12-08 17:49:10 · 230 阅读 · 0 评论 -
Masonry使用及注意
方法:mas_makeConstaints; 创建添加约束mas_updateConstaints; 更新约束,更新与之前冲突的数值,相同对象(括号里的数值)。 可以添加新的约束,但是若与原来的约束冲突(此冲突是造成的约束错误的冲突),AotuLayout会按一定的规则break Constaint解决冲突,或者是某些版本会crash。mas_remakeConstaint; 清原创 2017-12-11 11:44:59 · 444 阅读 · 0 评论 -
【python】处理字符串
字符串清除格式str.strip()比较字符串str1 == str2 # 有时一样的字符串比较却出现false。在比较之前,先进行格式清除。截取字符串str.split('.')# 参数为按照什么符号截取#也可以str = ’0123456789′print str[0:3] #截取第一位到第三位的字符print str[:] #截取字符串的全部字符print...原创 2018-09-14 17:12:57 · 195 阅读 · 0 评论