12 2016 档案
摘要:一、Weex介绍 Weex是阿里巴巴在2016年6月份对外开源的一款移动端跨平台的移动开发工具,Weex的出现让我们的应用既有了Native的性能和H5的动态性,只要通过前端JS语法就能写出同时兼容iOS、Android、Web三端兼容的页面,解决了移动应用开发中频繁发版和多端研发等痛点。 相对于F
阅读全文
摘要:苹果在 WWDC 2016 上宣布:2016 年底将要求所有 APP 适配苹果的 App Transport Security,简单地说就是除了特殊情况(浏览器、第三方服务、媒体)外,APP 跟服务端的通信必须使用 HTTPS 协议,否则 iOS 9 和 macOS 10.11 起,操作系统将有能力
阅读全文
摘要:React-Native学习指南 本指南汇集React-Native各类学习资源,给大家提供便利。指南正在不断的更新,大家有好的资源欢迎Pull Requests! 同时还有Awesome React-Native系列 https://github.com/jondot/awesome-react-
阅读全文
摘要:如果我们有些功能要给别人用,但是又不想公开代码实现,比如高德地图、第三方登录分享等等,这时候我们就要打包成库了。库分静态库和动态库两种: 静态库:以.a 和 .framework为文件后缀名。动态库:以.tbd(之前叫.dylib) 和 .framework 为文件后缀名。 静态库与动态库的区别 静
阅读全文
摘要:前言 之前在开发中有使用到计时器NSTimer,后来了解到iOS中不同的计时方法,其中就包括了CADisplayLink。基于CADisplayLink以屏幕刷新频率同步绘图的特性,尝试根据这点去实现一个可以观察屏幕当前帧数的指示器。 结论在前 根据CADisplayLink所实现的FPS指示器在实
阅读全文
摘要:概述 近一年iOS业界讨论组件化方案甚多,大体来说有3种。 Protocol注册方案 URL注册方案 Target-Action runtime调用方案 Protocol注册方案 URL注册方案 Target-Action runtime调用方案 URL注册方案据我了解很多大公司都在采用,蘑菇街 A
阅读全文
摘要:1、 利用系统自动布局UICollectionViewFlowLayout进行布局。 ViewController1 #import "ViewController1.h" @interface ViewController1 ()<UICollectionViewDataSource, UICol
阅读全文
摘要:一: 在开发中,经常能够遇到共用同一个界面的情况,一般情况下,我们会根据传入的model去做数据处理和保存。 当然如果不存在复用的情况下,根本不需要有太多的考虑,这里不考虑小应用的情况。 在追求界面复用的情况下,一个应用出现一个界面复用两次,三次都是很常见的吧!那么我们还是根据传入的model去处理
阅读全文
摘要:简单介绍 IGListKit是Instagram推出的新的UICollectionView框架,使用数据驱动,旨在创造一个更快更灵活的列表控件。 github地址:https://github.com/Instagram/IGListKit 这个全新的控件一出来,我就赶快投入实践了一把。 先谈一谈我
阅读全文
摘要:一、大小动画(改变frame) 二、拉伸动画(改变bounds) 三、转移动画(改变center) 四、旋转动画(改变transform) 五、透明度动画(改变alpha) 六、背景颜色Keyframes动画(改变background) 七、Spring动画(iOS7.0起) 八、transitio
阅读全文
摘要:Protocol Buffers 是什么? Protocol buffers are Google’s language-neutral, platform-neutral, extensible mechanism for serializing structured data – think X
阅读全文
摘要:问题 一般一个 iOS APP 做的事就是:请求数据->保存数据->展示数据,一般用 Sqlite 作为持久存储层,保存从网络拉取的数据,下次读取可以直接从 Sqlite DB 读取。我们先忽略从网络请求数据这一环节,假设数据已经保存在 DB 里,那我们要做的事就是,ViewController 从
阅读全文
摘要:实现垂直方向的单列表来说,使用UITableView足以。若是需要构建横向滑动列表、gridView等直线型布局,则使用UICollectionView+UICollectionViewFlowLayout搭建最合适。更复杂的布局,则可以使用UICollectionView+自定义Layout来实现
阅读全文
摘要:总结了iOS开发过程中的一些常用宏,以后会陆陆续续添加进来。 字符串是否为空 字符串是否为空 数组是否为空 数组是否为空 字典是否为空 字典是否为空 是否是空对象 是否是空对象 获取屏幕宽度与高度 ( " \ ":连接行标志,连接上下两行 ) 获取屏幕宽度与高度 ( " \ ":连接行标志,连接上下
阅读全文
摘要:为什么要优化NSDateFormatter? 优化方式有哪些? 为什么要优化NSDateFormatter? 优化方式有哪些? 为什么要优化NSDateFormatter? 首先,过度的创建NSDateFormatter用于NSDate与NSString之间转换,会导致App卡顿,打开Profile
阅读全文
摘要:在16年的WWDC中,Apple已表示将从2017年1月1日起,所有新提交的App必须强制性应用HTTPS协议来进行网络请求。默认情况下非HTTPS的网络访问是禁止的并且不能再通过简单粗暴的向Info.plist中添加NSAllowsArbitraryLoads设置绕过ATS(App Transpo
阅读全文
摘要:推荐通过Xcode中加断点的方式集成Reveal(小缺陷,当你禁用断点时或者不用Xcode而用Appcode开发时,这个方式是不管用)。 打开您的iOS工程,选择 View → Navigators → Show Breakpoint Navigator。 在面板左下角,点击 + 按钮并选择 Add
阅读全文
摘要:禁止/激活SSO授权 用于控制平台是否使用SSO方式进行授权(目前只支持新浪微博、Facebook、QQ空间、腾讯微博、人人网、Pocket。默认情况下是激活SSO授权方式。),代码如下: //激活SSO[ShareSDK ssoEnabled:YES]; //禁止SSO[ShareSDK ssoE
阅读全文
摘要:什么是OAuth授权? 一、什么是OAuth协议 OAuth(开放授权)是一个开放标准,所谓OAuth(即Open Authorization,开放授权),它是为用户资源授权提供了一种安全简单的标准,允许第三方网站在用户授权的前提下访问在用户在服务商那里存储的各种信息。而这种授权无需将用户提供用户名
阅读全文
摘要:1.iOS10中CAAnimationDelegate的警告 原有的工程用xcode8打开编译后,莫名的增加了许多警告,其中关于动画的警告有这样一个,虽然运行后发现并没有什么影响,但还是要探究一下: 关于警告的原因可以参考: IOS Assigning to 'id<Delegate>' from
阅读全文
摘要:MVVM就是在MVC的基础上分离出业务处理的逻辑到viewModel层。 M: Model层是API请求的原始数据,充当DTO(数据传输对象),当然,用字典也是可以的,编程么,要灵活一些。Model层是比较薄的一层。 V: View层,视图展示,由viewController来控制,他的任务就是从V
阅读全文
摘要:一、程序国际化 准备工作: 1、首先我们要先创建一个工程,我们给他命名Internationalization-Demo,然后添加语言。 从代码中分离文本: 目前,应用展示的所有文本都是以硬编码字符串存在于Main.storyboard 和 ViewController里。为了本地化这些字符串,你需
阅读全文
摘要:在Xcode6之前,创建一个新工程xcode会在Supporting files文件夹下面自动创建一个“工程名-Prefix.pch”文件,也是一个头文件,pch头文件的内容能被项目中的其他所有源文件共享和访问。是一个预编译文件。 首先说一下pch的作用: 1、存放一些全局的宏(整个项目中都用得上的
阅读全文
摘要:前言 iOS系统本身提供了两套绘图的框架,即UIBezierPath 和 Core Graphics。而前者所属UIKit,其实是对Core Graphics框架关于path的进一步封装,所以使用起来比较简单。但是毕竟Core Graphics更接近底层,所以它更加强大。 UIBezierPath
阅读全文
摘要:最近实现了下饿了么中选餐时两级tableView联动效果,先上效果图,大家感受一下: 下面说下具体实现步骤: 首先分解一下,实现这个需求主要是两点,一是点击左边tableView,同时滚动右边tableView到具体的位置。二是拖动右边tableView选中左边tableView对应的某一行。要实现
阅读全文
摘要:前文提要 近期准备重构项目,需要重写一些通用模块,正巧需要设置App异常加载占位图的问题,心血来潮设想是否可以零行代码解决此问题,特在此分享实现思路。 思路分享 对于App占位图,通常需要考虑的控件有tableView、collectionView和webView,异常加载情况区分为无数据和网络异常
阅读全文
摘要:Weex学习与实践(一):Weex,你需要知道的事 本文主要介绍包括Weex基本介绍、Weex源码结构、初始化工程、we代码结构、Weex的生命周期、Weex的工作原理、页面间通信、boxmodel & flexbox、weex的缺点 基本介绍 A framework for building Mo
阅读全文
摘要:一、一个强大的UITextView分类,让系统TextView自带placeholder属性、自动高度、支持输入图片三大功能 1、效果: 功能一、让系统TextView自带placeholder属性 功能二、自动改变高度,类似聊天输入框 功能三、支持输入图片 将UITextView+WZB.h和UI
阅读全文
摘要:1、初识CoreData CoreData的结构构成: NSManagedObjectModel的构成: 可以通过Entity创建继承自NSManagedObject类的文件,这个文件就是开发中使用的托管对象,具备模型对象的表示功能,CoreData的本地持久化都是通过这个类及其子类完成的。 在Co
阅读全文
摘要:前言 iOS中常用的持久化存储方式有好几种: 偏好设置(NSUserDefaults) plist文件存储 归档 SQLite3 Core Data 沙盒 每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离。应用必须待在自己的沙盒里,其他应用不能访问该沙盒。沙盒下的目录
阅读全文
摘要:控制器View的加载: 在面试中,面试官可能会问这样的问题,loadView有什么作用,它与viewDidLoad有何区别。首先我们得知道,控制器view是通过懒加载的方式进行加载的,即用到的时候再加载。 当我们用到控制器view时,就会调用控制器view的get方法,在get方法内部,首先判断vi
阅读全文
摘要:1、UIGestureRecognizer 介绍 手势识别在 iOS 中非常重要,他极大地提高了移动设备的使用便捷性。 iOS 系统在 3.2 以后,他提供了一些常用的手势(UIGestureRecognizer 的子类),开发者可以直接使用他们进行手势操作。 UIPanGestureRecogni
阅读全文
摘要:一、什么是响应者对象? 在 iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件。我们称之为“响应者对象”。UIApplication、UIViewController、UIView都继承自UIResponder,因此它们都是响应者对象,都能够接收并处理事件。
阅读全文
摘要:app应用跳转的原理解析 如何实现两个app应用之间的跳转 如何实现两个app之间跳转到指定界面 app应用跳转的原理解析 如何实现两个app应用之间的跳转 如何实现两个app之间跳转到指定界面 二、应用跳转原理 相信从一个应用跳转到另一个应用大家并不陌生,最常见的莫过于第三方登录,支付宝支付等等。
阅读全文
摘要:文/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? 答案如下: 当
阅读全文