随笔分类 - iOS
摘要:文/timhbw(简书作者)原文链接:http://www.jianshu.com/p/edfed1b1822c著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。 1.软件准备 【必备】Charles4.0.1 下载密码: jfnk 【不需要,配合Charles食用效果更佳】Paw2.3
阅读全文
摘要:iOS 持续集成系列 - 开篇 前言 iOS 开发在经过这几年的野蛮生长之后,慢慢地趋于稳定。无论开发语言是 Objective-C 还是 Swift,工程类型是 Hybird 还是原生,开发思想是 OOP 还是函数式,随着项目逐渐变大都在面临相同的问题: 测试、发布等重复性工作占了很大一部分时间,
阅读全文
摘要:那个,其实,还是用Group样式吧哈哈。 默认情况下,当设备一段时间没有触控动作时,iOS会锁住屏幕。但有一些应用是不需要锁屏的,比如视频播放器。 UICollectionView在reloadItems的时候,默认会附加一个隐式的fade动画,有时候很讨厌,尤其是当你的cell是复合cell的情况
阅读全文
摘要:1、copy 使用类型 :NSString,block 2、assign使用类型 :delegate,int,float,NSInteger,bool,枚举,结构体... 3、retain使用类型 :NSArray,NSDate 4、strong使用类型 :NSString/block以外的OC对象
阅读全文
摘要:一、多个对象之间的内存管理 1.你想使用(占用)某个对象,就应该让对象的计数器+1(让对象做一次retain操作) 2.你不想再使用(占用)某个对象,就应该让对象的计数器-1(让对象做一次release) 3.谁retain,谁release 4.谁alloc,谁release 二、set方法的内存
阅读全文
摘要:僵尸对象:内存已经被回收的对象。 野指针:指向僵尸对象的指针,向野指针发送消息会导致崩溃。野指针错误形式在Xcode中通常表现为:Thread 1:EXC_BAD_ACCESS,因为你访问了一块已经不属于你的内存。 1、什么是僵尸对象? 简而言之,就是过度释放的对象。 2、僵尸对象有什么特点? 如果
阅读全文
摘要:断点类型: 1.异常断点 异常断点是代码出现问题导致编译器抛出异常时触发的断点。它在断点导航器中设置。点击+号,选择Exception Breakpoint选项。如下图3-1所示 Exception选项可以让你选择响应Objective-C对象抛出的异常,也可以选择响应C++对象抛出的异常。 Bre
阅读全文
摘要:移动设备的内存及其有限,每一个APP所能占用的内存是有限制的。 什么行为会增加APP的内存占用? 创建一个oc对象 定义一个变量 调用一个函数或者方法 内存管理范围 任何继承了NSObject的对象 对其它非对象类型无效 简单来说: 只有oc对象需要进行内存管理 非oc对象类型比如基本数据类型不需要
阅读全文
摘要:iOS中消息传递方式 在iOS中有很多种消息传递方式,这里先简单介绍一下各种消息传递方式。 1、通知:在iOS中由通知中心进行消息接收和消息广播,是一种一对多的消息传递方式。 NSNotificationCenter消息通知机制,向NSNotificationCenter中addObserver后,
阅读全文
摘要:1、在ARC环境下: instancetype用来在编译期确定实例的类型,而使用id的话,编译器不检查类型, 运行时检查类型。 2、在MRC环境下: instancetype和id一样,不做具体类型检查。 id 可以作为方法参数传递, intancetype 不能。 id 可以去接受对象, inst
阅读全文
摘要:1 基本用途 可以用来声明一大堆方法(不能声明成员变量) 只要某个类遵守了这个协议,就相当于拥有了这个协议中的所有方法声明 只要父类遵守了某个协议,就相当于子类也遵守了 2 格式 协议的编写 3 关键字 协议中有2个关键字可以控制方法是否要实现(默认是 @required ),在大多数情况下,用途在
阅读全文
摘要:block是代码块,其本质和变量类似。不同的是代码块存储的数据是一个函数体。使用Block,就可以像其他标准函数一样,传入参数,并得到返回值。 可以把Block当做Objective-C的匿名函数,Block允许开发者在两个对象之间将任意的语句当做数据进行传递,block的实现具有封闭性(closu
阅读全文
摘要:总结一下关于UI布局及屏幕适配的一些实战技巧,尤其使用纯代码,会对提升效率及代码易于维护等方面有明显帮助,这里提到的没有使用任何Xib, 如果不是在外包公司,也推荐大家多使用甚至完全使用纯代码布局UI,优缺点下面会说明,本文布局使用masonry。 提纲: 1. 关于xib/storyboard 与
阅读全文
摘要:1、什么时候在 block 中不需要使用 weakSelf 我们知道,在使用 block 的时候,为了避免产生循环引用,通常需要使用 weakSelf 与 strongSelf,写下面这样的代码: 那么请问:什么时候在 block 里面用 self,不需要使用 weak self? 答案如下: 当
阅读全文
摘要:Today extensions (今日扩展): Today extension就是我们上面所说的通知中心扩展,因为这个扩展会显示在我们通知中心的 “今天” 这个标签下面。这个扩展的作用很简单,能够让用户更快速方便的看到app最及时的信息,比如中国移动的流量显示,我不用再每次打开移动的app去查看流
阅读全文
摘要:症状 iOS 10 之后,陆陆续续地有用户联系我们,说新机第一次安装、第一次启动的时候,app 首屏一片空白,完全没数据。kill 掉重新打开就好了。 一开始以为是用户网络情况不好,但随着越来越多的用户报告这个问题,我意识到这并不是偶然情况。但是并非所有用户都如此。 而且卸载掉之后,如果再装,也不会
阅读全文
摘要:在日常开发过程中,为了提升程序运行效率,以及用户体验,我们经常使用多线程。在使用多线程的过程中,难免会遇到资源竞争问题。我们采用锁的机制来确保线程安全。 线程安全 当一个线程访问数据的时候,其他的线程不能对其进行访问,直到该线程访问完毕。即,同一时刻,对同一个数据操作的线程只有一个。只有确保了这样,
阅读全文
摘要:先看两行代码:1. 2. 相信大家对上面的两行代码都不会陌生 上一行:UIColor原本是没有读取十六进制颜色值的方法的 下一行:UITableView原本是没有header属性的 那么,How it happened? Because of the Category! Category(类别)简介
阅读全文
摘要:发布开源库到CocoaPods的时候。对CocoaPods重新学习了一下。 1.CocoaPods的日常使用 2.创建CocoaPods的私有库 3.创建CocoaPods的开源库 一. CocoaPods的介绍 什么是CocoaPods?CocoaPods是一个负责管理iOS项目中第三方开源库的工
阅读全文
摘要:经常用UC看到首页有这么一个动画,就仿造写了一下。 实现分析 1.画曲线的动画 这个一眼看去就想到用贝塞尔曲线画,来看贝塞尔曲线方法,给出两个定点,和一个控制点就可以画。 CGContextAddQuadCurveToPoint(context, 控制点x, 控制点y, 目标点x, 目标点y); 于
阅读全文

浙公网安备 33010602011771号