- 博客(79)
- 资源 (13)
- 问答 (10)
- 收藏
- 关注
原创 斗图会输?不存在的
前言:本文非常浅显易懂,可以说是零基础也可快速掌握。如有疑问,欢迎留言,笔者会第一时间回复。本文代码存于github一、分析表情包网址1、进入斗图啦网址,点击**“最新表情”**,再点击第二、第三页,得出规律如下:第一页:https://www.doutula.com/photo/list/?page=2第三页:https://www.doutula.com/photo/lis...
2018-11-09 10:31:37 374
原创 正则表达式,看我就懂
世界上分为两种人,一种是懂正则表达式的,一种是不懂正则表达式的。不管你学的是什么语言,Java,iOS,安卓,都需要用到正则表达式,又因为正则表达式相通(每种语言几乎一样),所以在哪种语言学会正则,都可以用到其他语言中,下面我以python为例。文末,有常用正则表达式什么是正则表达式:1、通俗理解:按照一定的规则,从某个字符串中匹配出想要的数据。这个规则就是正则表达式。2、标准...
2018-11-01 18:15:23 425
原创 零基础爬取电影天堂
欢迎关注技术公众号,本人文章大部分发于" bigdeveloper "前言:本文非常浅显易懂,可以说是零基础也可快速掌握。如有疑问,欢迎留言,笔者会第一时间回复。本文代码存于github一、爬虫的重要性:如果把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛。网络蜘蛛通过网页的链接地址来寻找网页,从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它...
2018-10-30 14:17:25 2334
原创 FBKVOController源码剖析与学习
建议查看原文:https://www.jianshu.com/p/4a3f9fe13e5a (不定时更新)源码剖析学习系列:(不断更新)1、FBKVOController源码剖析与学习2、MJRefresh源码剖析与学习3、YYImage源码剖析与学习FBKVOController是对KVO的封装,本文会分为两大部分:一、针对FBKVOController进行源码解读,剖析其封...
2018-09-28 10:51:36 372
原创 MJRefresh源码剖析与学习
建议查看原文:https://www.jianshu.com/p/23c876f8ae39 (不定时更新)源码剖析学习系列:(不断更新)1、FBKVOController源码剖析与学习2、MJRefresh源码剖析与学习3、YYImage源码剖析与学习MJRefresh是李明杰大神的开源框架,这是一款十分优雅的刷新组件库,这开源组件无论从代码风格,可用性,易读性还是兼容性来讲都十分优...
2018-09-28 10:50:30 492
原创 iOS不可错过的关键字
建议查看原文:https://www.jianshu.com/p/dce05b24d288 (不定时更新)前言:我们看源码,或者面试经常遇到一些关键字,又由于网上的相关文章部分观点错误,我在此汇总了我之前的笔记以及查阅相关书籍,站在巨人的肩膀上,整合出此篇文章。总之,为了提升,为了面试,了解这些关键字,非常有必要。每个观点,我尽可能的结合代码讲解。extern当编译器遇到exter...
2018-09-28 10:48:34 215
原创 YYImage源码剖析与学习
建议查看原文:https://www.jianshu.com/p/83edaeeb5851 (不定时更新)源码剖析学习系列:(不断更新)1、FBKVOController源码剖析与学习2、MJRefresh源码剖析与学习3、YYImage源码剖析与学习前言:要看懂YYImage框架,最好先了解热身部分(具体的自行百度),如果懒得看,直接跨过该部分,等到下面部分有疑问,再回过头看这...
2018-09-28 10:46:19 830
原创 Hybird-App之选择器详解(二)
Hybird App之选择器详解(一) 学习混合app开发,要学会一些基础才能上手。本文主要介绍ID选择器、属性选择器、后代选择器、子元素选择器,其中ID选择器和属性选择器较为常用ID选择器详解1、ID选择器: ID选择器类似于类选择器;不过也有一些重要差别 例如: #id{}index.html<!DOCTYPE html><html lang="en"><head>
2018-01-01 19:52:04 360
原创 Hybird-App之选择器详解(一)
学习混合app开发,要学会一些基础才能上手。本文主要介绍元素选择器、选择器分组、类选择器元素选择器最常见的选择器就是元素选择器,文档的元素就是最基本的选择器 例如:h1{} a{} index.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>选择器</title> <l
2018-01-01 19:50:17 558
原创 优美整洁的引导页大神框架Onboard
Onboard是现在github最火的引导页框架,star已经近5k,我觉得这框架挺有意思。导语 Onboard:一个只用几行代码就可轻松创建 它是一个美丽的和迷人的iOS框架。! ![pic1] 使用1、可以用CocoaPods 下载 pod 'Onboard' 2、可以直接下载pro,然后拖进项目使用 每个onboarding实例包含两个主要组件 - 背景页和内容页。背景包括静
2017-12-20 16:07:38 1259
原创 谈谈对iOS消息的理解
前言:OC中的消息有“名称”或者“选择器”,可以接受参数,而且可能还有返回值。 调用方法是OC经常使用的,用OC的术语来说,这叫传递消息。OC是一门动态语言。 对比下C语言,它是一门静态语言,使用“静态绑定”-——在编译器就能决定运行时所应调用的函数。void printHello() { printf("Hello, world!\n");}void printGoobye() {
2017-12-20 16:05:17 233
原创 类似3D效果_CGAffineTransformScale
1️⃣CGAffineTransformMakeTranslation (相对平移)假设是一个视图,那么它的起始位置 x 会加上tx , y 会加上 ty 2️⃣CGAffineTransformScale 为一个Transformation再加上缩放 3️⃣CGAffineTransformIdentity 单位矩阵变换,一般用于仿射变换的初始化或者还原。本文将用以上方法做如下gif
2017-12-20 16:04:45 492
原创 单例的必要认识(深刻理解)
最近我面试人家,问他对单例的认识,他对单例的基本认识、创建方式回答全对,只有一点吞吞吐吐。单例的认识 单例模式:单例模式是设计模式中最简单的形式之一。这一模式的目的是使得类的一个对象成为系统中的唯一实例 系统单例: 1、UIApplication(应用程序实例) 2、NSNotificationCenter(消息中心): 3、NSFileManager(文件管理):
2017-12-20 16:02:39 230
原创 keyWindow的获取
UIWindow *keywindow = [[UIApplication sharedApplication] keyWindow]; 在控制器的viewDidLoad方法中直接获取是nil的,是因为delegate.m的makeKeyWindowAndVisible方法是是先调viewDidLoad方法先,makeKeyWindowAndVisible没有调用完,都没有当前的window,所以
2017-02-17 00:15:04 2619
原创 viewWtihTag的使用
我们知道[parentView removeFromSuperView]; 会把全部的view都移除。以下我们可以通过给subView设一个tag,然后遍历所有的subView,找到目标subView再删除。for (UIView *subviews in [self.view subviews]) { if (subviews.tag==100) { [s
2017-02-12 23:24:05 372
原创 addSubview和insertSubview 区别
子视图是以栈的方式存放的,也就是说有层次的存放 addSubview: addsubview时都是在最上面面添加 eg: UIView *v1 = [UIView new]; v1.frame = CGRectMake(100, 100, 100, 60); v1.backgroundColor = [UIColor redColor]; UIView *v2 =
2017-02-08 10:16:40 5567 2
翻译 awakeFromNib与initWithCoder
(1)awakeFromNib和initWithCoder:差别 awakeFromNib 从xib或者storyboard加载完毕就会调用 initWithCoder: 只要对象是从文件解析来的,就会调用 同时存在会先调用initWithCoder:(2)initWithCoder: & initWithFrame: initWithCoder:使用文件加载的对象调用(如从xib或stro
2016-10-21 11:19:43 1915
原创 获取版本号[[NSBundle mainBundle] infoDictionary]
很多朋友改版本号,通过改变属性,比如说self.versionLabel = @”1.0”,版本更新后,self.versionLabel = @”1.1” 如果通过这样改,那就很麻烦了。但是如果通过代码获取info的version信息,那就很方便,以后版本更换后,只需要改变info的version,就可以了。//获取当前版本号 NSDictionary *infoDic = [[NSBun
2016-10-08 18:19:17 3919
转载 优化UITableView性能
在iOS应用中,UITableView应该是使用率最高的视图之一了。iPod、时钟、日历、备忘录、Mail、天气、照片、电话、短信、Safari、App Store、iTunes、Game Center⋯几乎所有自带的应用中都能看到它的身影,可见它的重要性。然而在使用第三方应用时,却经常遇到性能上的问题,普遍表现在滚动时比较卡,特别是table cell中包含图片的情况时。实际上只
2016-08-26 11:30:24 494
原创 单例就是这么简单
单例目的就是为了在程序的整个生命周期内,只会创建一个类的实例对象,而且只要程序不被杀死,该实例对象就不会被释放。应用场景 比如在APP开发中我们可能在任何地方都要使用用户的信息,那么可以在登录的时候就把用户信息存放在一个文件里面,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息。这种方式简化了在复杂环境下的配置管理。 有的情况下,某个类可能只能有一个
2016-08-24 16:17:23 887
转载 全局变量与局部变量的区别
一、变量的分类 变量可以分为:全局变量、静态全局变量、静态局部变量和局部变量。按存储区域分,全局变量、静态全局变量和静态局部变量都存放在内存的静态存储区域,局部变量存放在内存的栈区。 按作用域分,全局变量在整个工程文件内都有效;静态全局变量只在定义它的文件内有效;静态局部变量只在定义它的函数内有效,只是程序仅分配一次内存,函数返回后,该变量不会消失;局部变量在定义它的函数内有效,但是函数返回后失效
2016-08-24 11:12:45 600
原创 归档解档自定义类奔溃的问题
要特别注意的是,归档解档方法只能应用于基本的Foundation对象,如果NSArray或NSDictionary中包含自定义的类对象,或直接归档自定义类对象,那么程序将会崩溃: 报错如下: [User encodeWithCoder:]: unrecognized selector sent to instance 0xcb4e560原因是User类的encodeWithCoder方法没有实现
2016-08-15 15:53:54 593
原创 UICollectionView使用
一、Storyboard的准备 1.在storyboard的ViewControll拖一个CollectionView 2.在collectionViewCell中添加ImageView和Label 3.创建一个UICollectionViewCell的类,并跟上面的collectionCell绑定 4.连线dataSource和delegate,并创建映射 imageView 、
2016-08-05 16:51:37 312
翻译 NSMutableArray的strong改成copy就崩溃
先要搞明白copy属性到底做了些啥一个属性标记了copy,当你调用他的setter方法,他会建立一个索引计数为1的对象,然后释放旧对象。例如@property (copy) NSMutableArray * a;NSMutableArray* b = [NSMutableArray array];a = b;等同于@property (strong) NSMutableArray
2016-08-03 22:12:09 822
原创 小技巧汇总(不定时更新···)
OC版本:[self.tabBarControllersetSelectedIndex:3]; //跳到第三个tabBarController
2016-08-03 14:27:43 318
转载 ScaleToFill、ScaleAspectFit、ScaleAspectFill 的区别
ScaleToFill、ScaleAspectFit、ScaleAspectFill今天码代码又碰到这个,不理解透彻是真不行了,有点伤脑筋啊~首先,百度谷歌了下,没啥好文章。草草看了几篇,基本都是差不多的内容。然后,上stackoverflow,有人问过这三者之间有啥不同。第一个回答纯文字,如下:UIViewContentModeScaleToFill
2016-08-03 11:28:02 20458
原创 swift02-创建Label
//创建Label var label = UILabel(frame:CGRectMake(20, 100, 100, 30)) label.text = "labelfwade" //背景颜色和文字颜色的设置 label.textColor = UIColor.blueColor() label.backgroundC
2016-08-01 14:36:36 455
原创 Swift01-设置button
override func viewDidLoad() { super.viewDidLoad()// var button:UIButton = UIButton(type:.ContactAdd) var button:UIButton = UIButton(type:.InfoDark); //设置按钮位置和大小 button.fram
2016-08-01 10:53:35 378
原创 Xcode检测解决iOS内存泄露
内存泄露是一个很严重的问题.会导致程序突然崩。下面就简单介绍下怎么使用Xcode自带的Instruments中的Leaks检测我们的程序有没有内存泄露和定位内存泄露的代码.(分析内存泄露不能把所有的内存泄露查出来,有的内存泄露是在运行时,用户操作时才产生的)先加一些代码,制造内存泄漏,以下是利用Array互相引用对方,不能自动释放内存- (void)viewDidLoad {
2016-07-26 14:05:52 912
原创 AFNetworkReachabilityManager检测网络状态
// 如果要检测网络状态的变化,必须用检测管理器的单例的startMonitoring [[AFNetworkReachabilityManager sharedManager] startMonitoring]; // 检测网络连接的单例,网络变化时的回调方法 [[AFNetworkReachabilityManager sharedManager]setReachabil
2016-07-25 16:13:22 7995
翻译 UNRECOGNIZED SELECTOR SENT TO INSTANCE 问题快速定位的方法
开发中常见的一类崩溃错误是遇到:unrecognized selector sent to instance 0xaxxxx…而backtrace又无法明确说明错误在哪行代码,如何快速定位BUG呢?有时读代码一下很难找到是哪个instance出的问题,这时定制有效的DEBUG断点是最好的办法,方法如下:在Debug菜单中选择 Breakpoints -> Create Symb
2016-07-25 13:57:55 1601
原创 为什么用copy for NSString属性?
当你声明一个NSString属性最好使用copy而不是strong。事实上这适用于任何不可变类,符合NSCopying协议像NSNumber NSArray,NSSet等等。所有我提到的这些类也有一个可变的版本。你想使用copy,因为NSString 属性可以传递NSString或NSMutableString实例。如果你传递NSMutableString实例那么这意味着字符串的值可能后面会改变。让
2016-07-04 12:20:50 455
原创 The certificate used to sign "app名" has either expired
The certificate used to sign “app名” has either expired or has been revoked. An updated certificate is required to sign and install the application.解决: 打开“钥匙串访问”->我的证书:删除相关的证书 真机运行,Fix即可。
2016-06-25 19:39:55 797
原创 Tableview最后一行无法显示或者显示不全
用了popOverVC遇到一个问题: Tableview最后一行无法显示或者显示不全在控制器RootViewController中声明了一个UITableView类属性。其中RootViewController是navigationcontroller中的一个控制器@property(,)myTableView;初始化的时候,怕麻烦。初始化的时候——self.myTableView = [UITa
2016-06-25 17:15:19 2076
翻译 The certificate used to sign "XXX" has either expired or has been revoked
在Xcode真机调试开发过程中,无论是使用个人证书或者是企业证书,经常会遇到这样的问题: The certificate used to sign “XXX” has either expired or has been revoked. An updated certificate is required to sign and install the application. 刚开始在key
2016-06-23 17:11:25 10452
原创 Foundation之时间格式
NSDateFormatter *formatter = [NSDateFormatter new]; [formatter setDateFormat:@"yyyyMMdd"]; NSString *time = [formatter stringFromDate:[NSDate new]]; NSLog(@"%@", time);
2016-05-30 20:53:35 427
原创 NSOperationQueue 的 cancelAllOperations
取消了一个操作,它不会马上就发生。它会在未来的某个时候某人在“main”函数中明确地检查isCancelled==YES时被取消掉;否则,操作会一直执行到完成为止。因为整个线程池是异步的.cancelAllOperations 相当于 把你加入队列中的所有线程 cancel 但是 这个操作必须有 但是 不能作为你用“取消所有线程”的按钮 你点击取消 设置一个参数 iscancel ==YES
2016-05-30 20:41:51 656
原创 如何解决问题“This Class is not Key Value Coding-Compliant for the Key”
错误“这个类是不关键价值的关键标准与编码”是iOS开发这将导致一个应用程序来发布之时死机的通病。请仔细阅读,找出解决问题。这个错误经常是一个丢失的对象之间在故事板和一个IBOutlet在代码文件中的连接的结果。这将导致这方面的一个常见的情况是,当你不小心在代码中创建一个IBOutlet中不必要的,而你只是删除出口申报不除去故事板对象上的连接。对于小项目,查找和删除有问题的连接很
2016-05-26 18:04:40 60040 4
原创 iOS本地化 NSLocalizedString的使用
在iOS设备,包括iPhone和iPad是全球可用。显然,iOS用户都来自不同国家,说着不同的语言。为了提供出色的用户体验,你可能希望以多种语言提供您的应用程序。适应应用程序以支持特定语言的过程通常被称为本地化。Xcode中有本地化的内置支持。所以它很容易为开发商通过本地化的功能和一些API调用国际化的应用程序。一、NSLocalizedString的定义:#define NSLocalized
2016-05-16 16:46:11 9574
原创 注册自定义的单元格xib
如果我们需要自定义cell,那么就需要注册它,一般在viewDidLoad方法先注册 // 注册自定义的单元格的xib // 系统就能够按照NewsCell.xib的样式来自动新建单元格实例 [self.tableView registerNib:[UINib nibWithNibName:@"RegisterCell" bundle:nil] forCellReuseIdent
2016-05-09 15:10:43 1018
程序员的数学三件套
2018-12-21
xml.bind.jar包
2018-11-17
从零开始学习Python网络爬虫
2018-10-30
图解HTTP最新版
2018-07-25
block的学习demo(回调,基本用法)
2016-04-20
ios属性不是可以存储值吗?
2016-03-15
下面这行代码有什么作用?
2016-03-09
iOS ,不知怎么描述,在图中了。
2016-02-14
datepicker 怎样进行实时刷新
2016-01-18
请问,UInotification的右上角红色图标怎样去掉
2016-01-16
想问下,iOS tableviewcell 高度如何跟文字内容高度一样呢?
2016-01-16
帮忙解决下c的问题。谢谢。
2016-01-15
怎样选择tableview中的某一行,并让他这行变颜色?
2016-01-15
做好了一款安卓客户端,我应该怎样做服务器传输数据,给点眉目我去学
2015-07-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人