自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 【python】处理字符串

字符串清除格式str.strip()比较字符串str1 == str2 # 有时一样的字符串比较却出现false。在比较之前,先进行格式清除。截取字符串str.split('.')# 参数为按照什么符号截取#也可以str = ’0123456789′print str[0:3] #截取第一位到第三位的字符print str[:] #截取字符串的全部字符print...

2018-09-14 17:12:57 145

原创 【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 1848

原创 【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 363

原创 【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 107

原创 【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 2534

原创 在ScrollView上的TextFiled隐藏键盘

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(touchesBegan)];[self.view addGestureRecognizer:tap];-(void)touchesBegan{ [self.view endEditing...

2018-08-16 11:39:52 184

原创 TableView didSelectRowAtIndexPath 不执行

是因为被被其他控件覆盖了。比如说:我在cell上有一个按钮,点击之后会弹出popView,popView是一个tableview,这个tableView的didSelectAtIndexPath会执行,但是下面那个主的TableView的代理方法就不会执行了。 解决方法: 1、父类事件设置代理UIGestureRecognizer *tapGesture tapGesture.d...

2018-08-16 11:39:07 1496

原创 Method swizzling

iOS Method swizzling原理: 1.发生在运行时,主要用于在运行时将两个方法交换。 2.代码可以写在任何地方,但是只有在这段交换代码执行完毕之后才起作用。 3.也是面向AOP(面向切面编程)的一种实现方式。在OC语言的runtime特性中,调用一个对象的方法就是给这个对象发送消息,是通过查找接收消息对象的方法列表,从方法列表中查找对应的SEL,这个SEL对应一个IMP...

2018-03-15 16:10:38 117

原创 HTTPS

什么是HTTPS HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL/TLS,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 SSL(Secure Socket Layer,安全套接字层):1994年为 Net...

2018-03-14 17:25:55 193

原创 《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 222

原创 RAC一些操作(取消,更新UI,cell去除脏数据)

在subscribe的三个方法中sendNext方法执行完毕继续进行sendNext;再有错误信息时,执行error方法,执行完毕之后,进行执行disposableBlock;completed方法执行完毕之后,也进行执行disposableBlock;后面两个方法都是在执行之后,自动执行disposableBlock进行取消订阅。在执行disposableBlock块的时候,会执行RACDi

2017-12-27 11:01:22 1165

原创 冷热信号

冷热信号区别:热信号是主动的,即使你没有订阅事件,它仍然会时刻推送而冷信号是被动的,只有当你订阅的时候,它才会发送消息热信号可以有多个订阅者,是一对多,信号可以与订阅者共享信息而冷信号只能一对一,当有不同的订阅者,消息会重新完整发送,热信号像是一个广播。冷信号像是一个模板,不同的订阅者会生成一个实例热信号会被所有此刻已订阅的地方各执行一次,以后订阅的地方会错过之前的消息一个很重要的概念

2017-12-25 18:08:03 285

原创 MVVM笔记

简单的概念就不多说了,都有所了解。没见过也听过。在面试复习的时候,知道这是什么东西,但是当自己在使用时,出现了无从下手的感觉。自己记录自己要记得东西,一些具体实施的东西。ViewModel是通过“绑定”方式与View交互的。好处:代码复用单元测试绑定方式:单向数据绑定双向数据绑定 channelTerminal集合数据绑定执行过程绑定错误处理实施步骤: 1. 创建base Vi

2017-12-14 16:07:45 151

原创 GCD的一些应用知识点

本篇各种零散的点,是自己在看杰哥教学视频时整理的知识点。GCD队列 - 主队列 - 串行队列 - 并行队列[x] FIFO [x] 线程安全在串行队列里dispatch_sync会直接crash (DISPATCH_CLIENT_CRASH)。因为在代码走到这里直接就进入crash,而不会再往下走,进入wait了。内部临界区: 只能有一个线程或是特定的线程执行的一段代码。外部临界区:

2017-12-13 15:30:31 146

原创 Git操作

git命令 说明 git init 将目录变为可以管理的仓库(Xcode自带git功能,所以创建好的项目文件是直接可以进行管理的仓库。) git add 将文件加入到仓库(加到暂存区),一般使用git add . 将所有文件加入 git commit 将文件提交到仓库(加到当前分支),-m “xxx” , 后面添加自己的说明 git status 查看仓库情况

2017-12-12 14:21:42 160

原创 数据持久化

一、文件 二、UserDefault 三、SQLite 四、keychain 五、coredata 六、归档化UserDefault 1. 应用域(domain) 一般NSUserDefault内使用setValue:forKeyPath方法时,存储的数据存入了应用域2. 注册域 仅有较低的优先权,应用域没找到在此找3. 全局域 系统设置预言域包括地区,日期参数域

2017-12-11 20:48:36 124

原创 Masonry使用及注意

方法:mas_makeConstaints; 创建添加约束mas_updateConstaints; 更新约束,更新与之前冲突的数值,相同对象(括号里的数值)。 可以添加新的约束,但是若与原来的约束冲突(此冲突是造成的约束错误的冲突),AotuLayout会按一定的规则break Constaint解决冲突,或者是某些版本会crash。mas_remakeConstaint; 清

2017-12-11 11:44:59 335

原创 内存管理

引用计数法:持有时+1,释放时-1,当引用计数为0时,进行dealloc。 四法则: - 自己生成对象,自己持有(alloc,copy….) - 非自己生成对象也可以持有 - 自己不持有时,需要释放 - 非自己持有对象,无法释放MRC ,ARCMRC是我们自己手动添加retain,release。ARC是编译器的特性,自动插入retain和release。循环引用MRC:

2017-12-08 17:49:10 192

原创 【笃行】iOS 开发中的问题

在做西邮图书馆时遇到的一些问题。1、在TableView创建好之后,cell什么的都已经初始化完毕,cell上不显示数据 原因:在numberOfRowsInSection中返回的数组为空。 解决:检查自己的dataArray是不是有数据。2、没有数据的时候不显示tableView的分割线 解决:self.tableView.tableFooterView = [[UIView alloc]i

2017-09-09 13:40:01 174

原创 【笃行】首页scrollview上滑动,Button状态改变

在做一个scrollView上有两个tableView时,想左滑右滑时tableView会滑动切换,在这里需要注意的是: 1、scrollView 的 contentsize 高度可以设置为0 ,这样就不会在滑动时出现上下晃动; 2、scrollView的属性pagingEnabled = yes,这样在滑动时就会一页一页的滑动; _homeScrollView = [[UIScroll

2017-09-05 20:57:17 439

原创 【力学】self关键字

self总是指向调用该方法的对象。self总是代表当前类的对象,当self出现在某个方法体中时,它代表的对象是不确定的,但是类型是确定的,它所代表的对象就是当前类的实例;当这个方法被调用时,它所代表的对象就确定下来了:谁在调用这个方法,self就代表谁。self.xxx 和_xxx的区别_.xxx是对属性的直接引用,不通过setter和getter方法。 self.xxx是通过访问方法的引用(包含

2017-03-14 23:47:51 309

原创 【笃行】Button的选中与改变

在项目中有时会遇到有几个Button,当选中其中一个Button时,状态颜色变为选中状态,其他的为不选中状态。 再次点击选中状态的Button状态不改变(依旧是选中状态)。针对这种情况,需要创建使用一个全局的Button属性。@property(nonatomic,strong)UIButton *tempButton;一般会有默认选中的Button,所以在默认的Button处写上 _lif

2017-03-13 15:37:50 1341

原创 【笃行】keychain的安全性

iOS的keychain服务提供了一种安全的保存私密信息(密码,序列号,证书等)的方式,每个iOS程序都有一个独立的keychain存储。相对于NSUserDefaults、文件保存等一般方式,keychain保存更加安全,而且keychain里保存的信息不会因APP被删除而丢失,所以重装APP后,keychain里的数据还能使用。我们可以把keychain理解为一个Dictionary,

2017-03-10 10:29:33 992

转载 Xcode 7以后在使用HTTP时报错解决办法

“App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app’s Info.plist file”找查资料后发现,新特性要求App内访问网络请求,要

2016-09-27 18:13:45 213

原创 时间选择器(UIDatePicker)和自定义选择器(UIPickView)

首先看一个时间选择器 本时间选择器是建立在弹出视图上的,也可以在普通视图上显示。 定义一个弹出框(具体的弹出框功能可以在我的另一篇文章可见)://本方法是一个按钮的点击事件-(void)customTime{ UIAlertController *alert; if (!alert) { alert = [UIAlertController alertContr

2016-07-18 15:31:21 2627

原创 下拉刷新(UIRefreshController)功能实现

首先定义一个刷新控件:@property (nonatomic, strong)UIRefreshControl *refresh;_refresh = [[UIRefreshControl alloc] init]; 设置属性与添加控件://设置提示标题_refresh.attributedTitle = [[NSAttributedString alloc] initWithString:@

2016-07-18 14:27:51 767

原创 弹出框(警告框)iOS9.0使用方法

在iOS9.0之前,使用弹出框的方法就是UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"警告框很简单" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:@"按钮一",@"按钮二",@"按钮三", nil];[alert show];之后要具

2016-07-16 10:21:26 1613

原创 iOS View的Frame和bounds之区别,setbounds使用

在ios开发中经常遇到两个词Frame和bounds,本文主要阐述Frame和bound的区别.-(CGRect)frame{ return CGRectMake(self.frame.origin.x,self.frame.origin.y,self.frame.size.width,self.frame.size.height); } -(CGRect)bounds{

2016-06-04 16:48:34 23745

原创 使用AFNetworking

在这里,会用到swift和object-C的混合使用(需要桥接)、     首先,在项目文件夹中创建桥接头文件              最底部就是,你里面内容就填#import;     然后,在项目文件里      找Build Settings搜索bridging,找到OC的桥接文件,在后面写上你刚刚创建的头文件的路径。     最后,你就可以在你的swift

2016-05-23 21:43:58 219

原创 安装Cocoapods

首先进入终端(Terminal)1、移除现有Ruby默认源     gem sources --remove https://rubygems.org/2、使用新的源(是的,用的就是淘宝的)     gem sources -a https://ruby.taobao.org/3、验证新源是否替换成功     gem sources -l4、     s

2016-05-23 21:42:00 178

原创 swift语言基础

swift是苹果公司在2004年发布的专门用于苹果开发的语言。是一种具有动态特性的静态语言,即“静态定义,动态推倒”。“静态定义”就是说数据类型是在编译时确定的;“动态推倒“则说明定义变量时不需要明确指定数据类型,而是在编译时,根据初始化时右边的数据类型进行推导当前变量的类型。这是定义和初始化注意的特性。1.将常量和变量插入字符串中的方法

2016-03-02 21:15:13 557

原创 UI控件的一些问题与解决方法

在写share的的时候,会遇到各种问题。今天开说说那些控件的事。。。1.从一个视图跳转另一个视图(或视图控制器)  也许,现在看来这并没有什么,点击一个按钮完成一个跳转事件就好了 [self presentViewController:mainview animated:YES completion:nil]; //mainview为跳转的视图(或试图控制器)但是在当

2015-11-29 19:56:36 399

原创 正式协议

在我们使用协议时,会有正式协议和非正式协议。今天,我们就来说说那些正式的事!正式协议中的所有的方法,采用之后,你都要全部实现(你本以为你是一个不妥协主义者,但是你得遵守它,承诺实现所有方法,这就是协议)。一般来说,,一个协议我们只想实现它几个方法,而正式协议要全部实现会有大量的负担,但是,就是全部实现你才能获得一系列有用的功能。针对这种情况,Object-C2.0中增加了一些良好的特性

2015-11-22 18:35:19 300

原创 NSPredicate 谓词

NSPredicate 谓词Cocoa提供了一个名为NSPerdicate的类,它用于制定过滤器的条件。可以创建NSPredicate的对象,通过他准确的描述所需的条件,通过谓词筛选每个对象,判断他们是否与条件相匹配。说了这么抽象的,还是来点实际的;谓词创建: NSPredicate *predicate; predicate = [NSPredicate predic

2015-11-16 15:27:24 290

转载 OC:多态

多态的前提:      必须存在继承关系,在代码中的表现形式就是父类类型保存子类类型,即父类      的指针指向子类对象。多态的使用:     @1.      父类的引用指向子类的对象,发送消息,调用的是子类对象的方法。     @2.       父类的引用指向本类的对象,发送消息,调用本类的方法。        在多态下,父类的引用可以指向子类的引用,当

2015-06-05 16:28:01 307

转载 OC:继承

OC继承的特点:@1.  继承是单向的,不能相互继承。@2.  继承具有传递性:A继承于B,B继承于C,A具有B和C的特征和行为@3.  OC中只允许单继承@4.  继承的内容:所有实例变量和方法。        @5.  OC中所有的方法(消息),默认都是公有的。修饰符:   private:    私有成员,不能被外部函数访问

2015-06-05 16:26:17 305

原创 小韩认识:继承

在之前的“类,对象和方法”中会涉及到父类这个概念。。父类也会有父类,没有父类的类位于层次结构的最顶层,称为根类。。在之前我们定义一个类的时候,```@interface Car :NSObject```我们定义的类属于 NSobject 根类的派生类,因为我们一般不自己定义一个根类,用现成的 NSObject 根类就好了。。继承的一个特点就是:子类具有父类的所有方法。用

2015-05-30 16:56:33 366

原创 小韩浅谈:类、对象和方法

hello everyone!小韩之前有点事,哥哥结婚,回了趟家,所以有些怠慢。。这两天打算补回来~~好了,今天我们就来讨论一下OC里的:类、对象和方法。首先,我们来说这个对象,(这里的对象不是咱们说的找对象,男女朋友,那样就扯犊子了,哈哈~~)对象简单点就是一个物体,比如:你的自行车,你的电脑,一个特定的,你的车子,你的电脑,叫对象。。类,顾名思义,有类别,类型之意。

2015-05-26 19:44:20 462

原创 小韩第四章:C语言特性

小韩写了前3章的博文,,让我是也是醉醉的,,只有第一章是关于Objective-C,剩下两章根本就是C嘛~~~~今天这章题目就是C语言特性,,一下让我的尿性喷发了。。。。这到底是在学OC吗?没错,,是在学,只不过前面OC真的和C是没什么区别诶。。。。所以,,我打算本章不走寻常路,,那就是,只说本章与OC不一样的地方。。看完本章,让我觉得我看完了一本C语言书,包括函数,变量,

2015-05-10 21:00:37 395

原创 小韩第三章:流程控制与数组

无论哪种语言,都会提供两种基本的流程控制结构:分支结构 和 循环结构。。说真的,写到这里,真的是扯犊子,这OC与C根本没什么区别,要不是组长让写博客,我估计就一句话这就完了。。那就是本章与C语言中的流程控制与数组一样的。但是,我还是要写出个性,写出逼格!顺序结构:程序一级一级的往下执行,中间不能有任何的判断和跳转。分支结构:1.if 条件语句用于判断的语

2015-05-10 19:59:02 315

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除