- 博客(109)
- 收藏
- 关注
原创 再探KVO
KVO(Key-Value-Observing)键值观察 监听property的变化 通知某些对象(观察者)关于其他对象属性值发生变化的一种机制.优缺点优点性能好[开销相对于NSNotification和委托更小(只用存取方法来修改实例变量,不需要额外成本)]; 容易实现视图组件和数据模型的分离,模型类的简洁;缺点回调方法中传递的代表变化的字典,用起来繁琐;bug难解决(会制造
2017-04-05 11:20:52
833
原创 iOS报错篇
将平时遇到的一些报错问题整理成篇.14th,March,2017process launch failed: failed to get the task for process分析: 证书问题。 解决方法: Build Setting -> Code Signing将证书从iOS Distribution改成Developer类型 参考资料: iOS 报错:process launch fai
2017-03-14 10:54:56
619
原创 UINavigationController笔记
3rd,March,2017概述UINavigationController继承UIViewController, 是一个特殊的视图控制器,具有层级结构,用于管理一组具有层级结构的视图控制器(通过viewControllers 属性维持这组视图控制器)。UINavigationController维持着视图控制器栈,通过入栈和出栈更改最顶层的视图控制器。viewContoller数组中的第一个视图控
2017-03-06 16:46:42
737
原创 初探iOS闭包实现Block
声明示例大多是从AFNetworking中节取的,也可以参考这里How Do I Declare a Block: // 1.typedeftypedef void (^AFNetworkReachabilityStatusBlock)(AFNetworkReachabilityStatus status);// 2.声明为变量int (^myBlock)(int) = ^(int num){
2017-02-16 11:42:39
1221
原创 初探iOS单元测试XCTest
测试基本流程添加单元测试创建项目时勾选Inclue Unit Tests .忘了勾选可通过创建File–>new–>target–>iOS–>iOS Unit Testing Bundle。默认单元测试文件继承XCTestCase,默认的方法有4个: 1. setUp(每个测试方法调用前执行, 在执行完父类方法后添加自定义配置); 2. tearDown(每个测试方法调用后执行,在执行父类
2017-02-06 11:47:48
1441
原创 iOS贝塞尔曲线UIBezierPath
[todo] 使用Core Graphics函数去修改path ,涉及属性@property(nonatomic) CGPathRef CGPath;简介贝塞尔(Bezier)曲线,应用于二维图形应用的数学曲线,依据四个位置任意的点坐标绘制出一条光滑曲线。由线段和节点组成,节点是可拖动的节点,线段像可伸缩的皮筋。通过控制起始点,终止点以及两个相互分离的中间点来绘制图形。皮筋效应: 随着点有规律的移动
2017-01-10 13:51:53
3775
原创 Masonry
6th,Jan,2016前言在做一个实战:聊天界面搭建的过程中,使用到Masonry辅助布局。然后去github 上面找到了该框架,这个库的使用率还是蛮高的,该库现在还在维护,十天前还有代码更新,github上面的介绍:这是一个轻量型的代码自动布局的第三方库。特色:在NSLayoutConstraint的基础上进行封装,NSLayoutConstraint能实现的Masonry都能实现。语法更加
2016-12-13 11:04:37
1175
原创 iOS布局
ScrollView全屏布局方法: 设置UIViewController的automaticallyAdjustsScrollViewInsets. 该属性会依据viewController所处的环境(是否有navigationBar或者tabBar之类的bar), 在UIViewController的view moveToWindow的时候,自动设置scrollView的 contentIns
2016-12-12 14:14:23
395
原创 iOS实践
11st,Nov,2016修改项目名称左边导航栏第一列: 选择项目名称,编辑相求项目名称”a” —> “b” 点击enter,弹窗,点击确定。将项目文件夹名称修改: “a” —> “b”进入工程所在文件夹,修改文件夹名称”a” —> “b” ,编译出错,点击对应文件夹,修改对应的资源文件夹路径(右边导航栏第一列)编译后出错提示”InfoList”目录不对。 全局搜索InfoPlist定位到对
2016-11-15 12:36:35
550
原创 iOS多线程学习笔记
iOS多线程NSThreadNSOperationGCD锁机制NSLock同步锁synchronized代码块GCD中dispatch_semaphore_t信号量小结并发编程概述基础定义基础算法TODO并发防御原则小结参考资料7th,Dec,2015iOS多线程 “iOS中多线程使用并不复杂,关键是如何控制好各个线程的执行顺序、处理好资源竞争问题。”–KenShi
2016-11-11 11:23:48
943
原创 UIView动画初探
UIView动画属性@property(nonatomic) CGRect frame;// 大小变化@property(nonatomic) CGRect bounds;// 拉伸变化@property(nonatomic) CGPoint center;// 位置修改@property(nonatomic) CGAffineTransform transform;// 旋转@proper
2016-10-17 23:55:00
754
原创 分辨好坏代码
r: 未完待续,明天继续概念坏代码在想知道什么是好代码之前,先认识下什么是坏代码.知其而后懂避之. 1.各种错综复杂的逻辑. 2.实现新需求时或者修改原有功能时,出现莫名其妙的bug; 3.意义不明,意义不明的代码会导致你盯着看了很久却不知道实现了什么.好代码好的编码规范1). 关于注释,偏向于写注释,虽然也有接触过有的文章建议尽量让代码友好到不需要注释,但个人还是偏向于在写友好代码的基础上写
2016-10-17 22:08:55
1353
原创 UIDatePicker
概述:应用场景: 1. 时间选择器; 2. 倒计时界面。使用:1.创建UIDatePicker; 2. 配置; 3.设置事件。创建时间选择器UIDatePicker *datePicker = [[UIDatePicker alloc] initWithFrame: frame];配置datePicker.backgroundColor = [UIColor whiteColor]; //设
2016-10-12 17:19:03
620
原创 基于UIWebView混合编程
未完待续…… r: 终于接触到混合编程的项目,记录下对混合编程的学习过程与理解简介UIWebView可以加载网页,还可以加载html、pdf、txt等多种格式文件. 混合编程: 指同时使用原生控件和UIWebview展示页面.唐巧在《iOS开发进阶》中说道: 合理的使用该方案,即可以保证页面的流程交互效果,又有Web页面良好的动态更新和多平台复用的优势.应用场景: 1. 页面排版复杂,
2016-10-08 23:38:09
884
原创 Photos.framework学习笔记
23th,Sep,2016 r: 感觉这篇博客会比较长,每一块慢慢补了。概述iOS8.0中引入了新的框架Photos.framework取代AssetsLibrary进行用户照片库图片资源的获取 1. 导入Photos.framework 2. 调用该框架 #import <Photos/Photos.h>框架结构初探PHAsset: 代表照片库中的一个资源,用以提供资源的元数据。跟 ALA
2016-09-23 16:53:57
686
原创 UIViewController学习笔记
UIViewController : UIResponder:NSObject A view controller manages a set of views that make up a portion of your app’s user interface. It is responsible for loading and disposing of those views, for m
2016-09-21 17:56:34
626
原创 iOS--ViewController转场
前言看到seedante的转场文章iOS 视图控制器转场详解,有兴趣就跟着学习咯.转场协议// UIViewControllerTransitioning.h// 1. 转场代理(required),提供动画控制器与交互控制器@protocol UIViewControllerTransitioningDelegate <NSObject>// 2. 转场上下文(required),提供转场过
2016-09-21 14:25:12
661
原创 iOS-Interface Builder小技巧
18th,September,2016TipsEditor->Size to Fit Content ( ⌘=) 1)ImageView: 设置成图片的原始大小;2)label/button: 会设置成跟文字相当的大小。 3) viewOption键 选择一个控件,按options键可以移动鼠标查看其他view与选中的控件的一些距离数据。IBOutletCollection排序Iden
2016-09-18 16:05:14
623
原创 iOS网络监测
13th,September,2016 获取网络状态AFNetworkReachabilityManager *reachabilityManager = [AFNetworkReachabilityManager sharedManager]; if (!reachabilityManager.reachable) { failedResponse(@"网络无法连接");
2016-09-13 18:14:51
471
原创 UIImageView学习笔记
12th,September,2016ContentModetypedef NS_ENUM(NSInteger, UIViewContentMode) { UIViewContentModeScaleToFill, UIViewContentModeScaleAspectFit, // contents scaled to fit with fixed aspect. re
2016-09-12 16:24:50
502
原创 iOS键盘回收
12th,September,2016说在前面键盘回收可以说是开发中蛮常见的一个功能,基本上有涉及到文本编辑就会有键盘的相应处理。那就总结下几种键盘回收吧回收键盘- (void)resignFirstResponder; // 回收键盘问题写在前面[诡异问题1] 在实现添加swipe手势时,设置direction为上下,或者左右可以识别,但是当direction为上下左右时只能识别到左右轻扫手势,无
2016-09-12 11:35:12
495
原创 UIGestureRecognizer学习笔记
12th,September,2016概述UIKit-UIGestureRecognizer–苹果开发文档 UIGestureRecognizer是具体手势识别器的抽象基类。具体的子类有: UITapGestureRecognizer // 点按 UIPinchGestureRecognizer // 捏合,比如图片的缩放 UIRotationGestureRecognizer // 旋转
2016-09-12 10:56:32
402
原创 MBProgressHUD
11st,September,2016 Version 1.0.0 github地址 MBProgressHUD is an iOS drop-in class that displays a translucent HUD with an indicator and/or labels while work is being done in a background thread. The
2016-09-11 18:04:52
1176
原创 iOS数字转汉字
7th,September,2016NSNumberFormatterNSNumberFormatter *nf = [[NSNumberFormatter alloc] init];nf.numberStyle = kCFNumberFormatterRoundHalfDown;NSString *string = [formatter stringFromNumber:[NSNumber n
2016-09-09 11:15:40
2713
原创 iOS计算文本高度
简介iOS7.0以前使用-sizeWithFont: constrainedToSize: lineBreakMode计算高度,iOS7.0以后通过-boundingRectWithSize:options:attributes:contenxt计算高度boundingRectWithSize// NOTE: All of the following methods will default to
2016-09-05 10:58:51
1656
原创 iOS问题列表
前言一些诡异的问题,目前毫无思路,先放着可能哪一天以后的自己就可以解答。也欢迎交流指点下。问题列表stringByReplacingOccurrencesOfString去除空格失败30th,August,2016 为什么打印stripSpaceText存在空格,而将newText赋给textStr后,再进行去除就可以了。 UITextRange *selectedRange = [text
2016-08-30 10:19:46
498
原创 Mac常用工具
19th,August,2016说在前面每天至少有8个小时在电脑前,那么经常使用到的非常优秀的工具,以及新下载的工具,记录一下吧。并且我讨厌在电脑上安装很多软件,所以留下来的每一个都有一定的道理。[todo]有空应该把已安装的整理出来。SourceTree官网: SourceTree 下载地址: Download SourceTree For Mac A free Git & Mercuria
2016-08-19 09:47:18
541
原创 iOS基础之define,const,extern,static
16th,August,2016define VS const宏(define)跟常量(const)的区别:宏是做预编译处理,但不会检查,只是做简单的替换操作。大量的宏需做大量的替换工作导致编译时间久,且没有类型安全检查,在替换过程中可能会产生意想不到的错误。且宏在一些情况下会消耗比较多的内存。因而,苹果不推荐使用宏,推荐使用const。 const会编译检查,也会报编译错误,即做类型安全检查工作
2016-08-17 15:33:02
1504
原创 安装与使用Cocoapods
15th,August,2016安装 Cocoapods官网提供方式sudo gem install cocoapods 由于无法访问外网的缘故,输入该命令可能很久都没有反应。需要修改更换源。国内安装$ gem sources –remove https://rubygems.org/$ gem sources -a https://ruby.taobao.org/ // 去年也就是2015
2016-08-15 15:10:33
780
原创 Xcode插件篇之XVim
10th,August,2016前言有段时间不用XVim了,但还是觉得不适应。果断又重新安装了,使用Vim的一个后遗症除了不想按上下左右,有时连Enter换行都不是很想按。顺便整理个插件篇,将使用到的插件都整理到这里。XVimgithub地址安装将项目拉下来,随便什么方式。download zip/git cloneTerminal进入项目所在目录,make编译重启Xcode, 会弹框询问是否
2016-08-10 10:26:33
648
原创 AFNetworking3.0学习笔记[更新中]
9th,August,2016概述 1. AFHTTPSessionManager 2. AFNetworking 3. AFNetworkReachabilityManager // 网络可达性 4. AFSecurityPolicy // 安全性 5. AFURLRequestSerialization // 请求数据序列化 6. AFURLResponseSerializatio
2016-08-09 16:27:53
1964
原创 iOS内存管理学习笔记
27th,May,2016内存管理 (add on 7th,August,2016)learn from: 《iOS开发进阶》 内存管理基于引用计数,通过引用计数管理对象的生命周期,创建一个对象引用计数为1,当一个新的指针指向这个对象时(retian,copy),引用计数加1,当某个指针不再指向这个对象时,引用计数减1,当引用计数为0时,对象就被摧毁,回收内存。内存管理机制谁创建,谁释放在Obj
2016-08-07 21:58:34
652
4
原创 iOS API更新
更新列表5th,August,2016 1. Deprecated in iOS9.0: urlStr = [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; Updated: [urlStr stringByAddingPercentEncodingWithAllowedCharacters:[N
2016-08-05 16:15:22
661
原创 OS X禁用NSTextView的引号替换
4th,August,2016问题描述在NSTextView中输入json的双引号时,输入法为英文,但显示的是中文的引号。而且在输入过程中能感觉到英文引号替换成中文引号。顺便试了下NSTextField,不存在该问题。再试了下单引号也存在该问题,而!,@,#等字符不存在该问题。 猜测:是系统对引号做了特殊处理,在输入引号的时候将输入法更改为中文输入法吗? 于是按着这个思路去查看了NSTextVi
2016-08-04 17:34:19
1623
原创 iOS网络开发学习笔记
HTTP概述超文本运输协议(Hypertext Transfer Protocol,HTTP),使用TCP作为传输层协议,是一个无状态的协议。基于请求-响应机制,有服务器端和客户端实现,定义了客户端如何向服务器端请求页面与服务器端如何将页面传送给客户端。在[RFC 1945]和[RFC 2616]中进行了定义。 1989年互联网之父 Tim Berners-Lee采用超文本技术开发出世界上第一个W
2016-08-04 10:09:15
734
原创 OS X拖拉文件获取文件路径
参考资料:苹果文档 2rd,August,2016介绍Cocoa提供了在开发的应用与其它应用间实现拖拽的相关API,分别在NSDragging.h,NSDraggingItem.h,NSDraggingSession.h中。NSDragging声明了NSDraggingSource,NSDraggingDestination,NSDraggingInfo协议@protocol NSDragging
2016-08-02 17:51:19
2169
原创 HTTPS系列之CA数字证书
数字证书的两个作用: 1. 身份验证。确保客户端访问的网站是通过CA认证的可信赖的网站 2. 分发公钥。简介PKI(Public Key Infrastructure)公钥基础设施 “遵循标准的利用公钥加密技术提供一套安全基础平台的技术和规范。支持公钥管理并能支持认证,加密,完整性和可追究性服务的基础设施“ “完整的PKI系统具有 CA, 数字证书库,密钥备份及恢复系统,
2016-07-28 14:34:52
5342
1
原创 HTTPS系列之RSA算法
简介加密算法总的可以分为两种,对称加密与非对称加密算法。 RSA是1977年三位数学家Rivest,Shamir,Adleman设计的一种非对称的加密算法,该算法破解的关键在于寻找大数的两个质数因子。大数长度越大,破解难度也就越大,目前768位的密钥已被破解,安全性建立在公钥长度足够的基础上,如iOS9中引入的新特性ATS中对公钥长度就有明确的要求,至少为2048位。 “RSA是第一个也是目前唯
2016-07-26 11:28:06
1841
原创 HTTPS系列之SSL/TLS协议
SSL/TLS协议的基本思路是采用公钥加密法–from 阮一峰 SSL/TLS协议的基本过程是这样的: (1) 客户端向服务器端索要并验证公钥。 (2) 双方协商生成”对话密钥”。 (3) 双方采用”对话密钥”进行加密通信。SSLSSL(Secure Sockets Layer 安全套接层 利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取
2016-07-25 17:56:41
735
原创 iOS基础篇
22th,July,2016前言最近越发感觉基础掌握的很差,这篇就好好记录下关于iOS那些基础吧NSString判空的几点思考NSString判空 判空第一步:一般会对该字符串进行类型判断 -isKindOfClass:[NSString class]是否为NSString的实例或继承自NSString的任意类实例。也就是声明为NSString类型后,该变量的类型不一定是NSString(r:
2016-07-22 14:55:20
964
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人