201808-28 iOS 利用AFNetworking实现大文件分片上传 概述一说到文件上传,想必大家都并不陌生,更何况是利用AFNetworking(PS:后期统称AF)来做,那更是小菜一碟。比如开发中常见的场景:头像上传,九宫格图片上传...等等,这些场景无一不使用到文件上传的功能。如果利用AF来实现,无非就是客户端调用AF提供的文件上传接口即可,API如下所示:-(nullableNSURLSessionDataTask*)POST:(NSString*)URLStringparameters:(nullableid)para... 继续阅读 >
201711-30 iOS面试题:阿里-P6一面-参考思路 阿里-p6-一面 1.介绍下内存的几大区域?2.你是如何组件化解耦的?3.runtime如何通过selector找到对应的IMP地址4.runloop内部实现逻辑?5.你理解的多线程?6.GCD执行原理?7.怎么防止别人反编译你的app?8.YYAsyncLayer如何异步绘制?9.优化你是从哪几方面着手?1.介绍下内存的几大区域?1.栈区(stack)由编译器自动分配并释放,存放函数... 继续阅读 >
201711-08 iOS中的MVP模式初探 以前在项目中都写的是MVC模式,由于现在在项目中要学习MVP模式,所以找了一个Demo研究了一下.就简单说说自己的看法吧.先说一下MVC模式,示意图如下:MVC模式示意图模型拿到数据,可能是数据库或者网络数据最简单的比方,我们拿到一个模型数组了之后,这个就相当于是一个数据源.将数据传递给控制器,控制器经过简单地加工数据源经过简单地处理加工,比如在tableView中,我们... 继续阅读 >
201709-26 2017年排名前11的iOS应用分析工具 似乎每年都有越来越多的移动分析工具,2017年也是如此,所以用户很难在这么多iOS应用程序选择使用哪一个,或者说,用户将不止使用一个分析工具。开发人员倾向于使用各种分析工具来帮助他们全面了解iOS应用程序,每一个工具都可以为你提供一个独特的应用程序视图,以及它的执行情况。我们对iOS开发者在2017年使用的iOS应用分析工具进行了广泛的研究,发现这11个是最好的。Firebase(谷歌应用分析工具)“Appsuccessm... 继续阅读 >
201709-26 58 同城 iOS 客户端搜索模块组件化实践 引言58同城的搜索功能支撑了近一半的用户流量,所以搜索是一个很重要的模块。众所周知,iPhone的搜索是通过Spotlight来实现的,那么在App内部是如何实现搜索呢?首先了解一下58同城的搜索需求:58同城首页,提供搜索功能,称为全站搜。58同城有二手物品、房产、二手车、招聘、黄页几大业务线,这是粗粒度的业务线。细分一下,二手可以拆分出二手物品、宠物等类别;房产拆分出租房、二手房等类别;... 继续阅读 >
201610-20 iOS指纹识别登录流程及实现 闲谈最近一直在追青云志,总觉得电视剧没有小说来的精彩。是的,大咖们演技堪称惊艳,剧情改编也很紧凑,但不得不说很多东西单靠演是达不到的,主人公每一刻的内心也只能在小说中才能看的贴切(为了装X,哥不惜二百两买了一沓正版典藏版)。看过的童鞋知道,张小凡手中的法宝,是由摄魂与嗜血珠以张小凡精血为媒淬炼而成。而且此法宝,有一特大优秀品质,那就是除了与张小凡有血缘关系的人之外,即便你有通天本领也不能操控,... 继续阅读 >
201610-13 加速iOS开发的28个第三方库 1: AFNetworking -网络请求AFNetworkingisadelightfulnetworkinglibraryforiOSandMacOSX类似库有 Alamofire2: AsyncDisplayKit -异步加载UISmoothasynchronoususerinterfacesforiOSapps类似库有 Componentkit3: Aspects -RuntimeDelightful,simplelibraryforaspectorientedprogramming4: Charts -图表绘制BeautifulchartsforiOS/tvOS/... 继续阅读 >
201608-25 iOS之同步请求、异步请求、GET请求、POST请求 1、同步请求可以从因特网请求数据,一旦发送同步请求,程序将停止用户交互,直至服务器返回数据完成,才可以进行下一步操作,2、异步请求不会阻塞主线程,而会建立一个新的线程来操作,用户发出异步请求后,依然可以对UI进行操作,程序可以继续运行3、GET请求,将参数直接写在访问路径上。操作简单,不过容易被外界看到,安全性不高,地址最多255字节;4、POST请求,将参数放到body里面。POST请求操作相对复杂,需要将参数和地... 继续阅读 >
201608-25 iOS 常见知识点 锁是最常用的同步工具。一段代码段在同一个时间只能允许被有限个线程访问,比如一个线程A进入需要保护代码之前添加简单的互斥锁,另一个线程B就无法访问,只有等待前一个线程A执行完被保护的代码后解锁,B线程才能访问被保护代码。iOS中的八大锁NSLock@protocolNSLocking-(void)lock;-(void)unlock;@end@interfaceNSLock:NSObject<NSLocking>{@privatevoid*_priv;}-(BOOL)tryLock;-(BOOL)lockBeforeDate... 继续阅读 >
201604-12 iOS 一个简单的通讯录 用tableview写了一个简单的通讯录,话不多说,咱们慢慢构建。首先,你需要一个tableview(这是肯定的。。代码就不贴了哈),接下来,你需要对数据源进行处理,按A-Z首字母分类。UILocalizedIndexedCollation*indexedCollation=[UILocalizedIndexedCollationcurrentCollation];[self.sectionHeaderArrayaddObjectsFromArray:[indexedCollationsectionTitles]];NSMutableArray*sortarray=[[NSMutableArrayalloc]init];... 继续阅读 >
201603-22 iOS程序员必看之热门书单 只要是一说想学iOS,可能很多人都会建议你去学Swift,但是,这可能是个误区,iOS开发的第一技能是精通Objective-C,原因很简单,swift目前还不成熟,第三方库不够多,而且swift只是表面上简单,其实水很深。其实,小编建议的是,多看书!毕竟看一本适合自己的好书,就是和大神一次倾心的谈话。下面双手奉上iOS程序员应看的几大热门书单。(针对于下面推荐的书籍中大家可以先去关注英文原版,毕竟翻译的书籍中都有一定的语法... 继续阅读 >
201603-04 浅谈iOS的文件操作 一、沙盒路径沙盒主路径:是程序运行期间系统会生成一个专属的沙盒路径,应用程序在使用期间非代码的文件都存储在当前的文件夹路径里面我们通过以下代码可以打印出沙盒主路径NSString*homePath=NSHomeDirectory();NSLog(@"%@",homePath);我们根据打印出的路径前往文件夹可以进入包含DocumentsLibrary和tmp文件夹的文件夹这个就是沙盒主路径Documents:用来存储永久性的数据的文件程序运行时所需... 继续阅读 >
201603-03 IO多路复用深入浅出 Java程序员进阶三条必经之路:数据库、虚拟机、异步通信。前言从零单排高性能问题,这次轮到异步通信了。这个领域入门有点难,需要了解UNIX五种IO模型和TCP协议,熟练使用三大异步通信框架:Netty、NodeJS、Tornado。目前所有标榜异步的通信框架用的都不是异步IO模型,而是IO多路复用中的epoll。因为Python提供了对Linux内核API的友好封装,所以我选择Python来学习IO多路复用。IO多路复用select举一个E... 继续阅读 >
201602-29 ios 照相机和相册的调用 一个简单的功能,上传照片或者拍照可以用到.//首先遵循两个代理<UIImagePickerControllerDelegate,UINavigationControllerDelegate>//我们创建一个btn和一个imageview,btn用来触发事件调起照相机和相册的功能,imageview用来展示选取或者拍摄的图片.self.view.backgroundColor=[UIColorwhiteColor];UIButton*btn=[[UIButtonalloc]initWithFrame:CGRectMake(100,100,200,50)];btn.backgroundColor=[UIColorblac... 继续阅读 >
201602-26 iOS绘图 介绍说到iOS的绘图肯定就是CoreGraphics。CoreGraphicsFramework是一套基于C的API框架,使用了Quartz作为绘图引擎。它提供了低级别、轻量级、高保真度的2D渲染。该框架可以用于基于路径的绘图、变换、颜色管理、脱屏渲染,模板、渐变、遮蔽、图像数据管理、图像的创建、遮罩以及PDF文档的创建、显示和分析。获取图形上下文CoreGraphicsAPI所有的操作都在一个上下文中进行。所以在绘图之前需要获取该上下文并传入执行渲染... 继续阅读 >
201602-25 iOS获取设备信息与应用信息 图片来源于网络iOS获取设备信息在iOS开发过程中,有时我们想获取到设备的系统信息,这时就需要使用到UIDevice类,具体常用信息获取方式如下:获取设备唯一标识,同一个开发商的APP获取到的标识是相同的,与UDID不同的是,在我们删除了设备上同一个开发商的所有APP之后,下次获取到的将是不同的标识[[UIDevicecurrentDevice]identifierForVendor];获取设备系统名称,如iPhoneOS[[UIDevicecurrentDevice]systemName];... 继续阅读 >