
iOS进阶
文章平均质量分 78
3行代码
公众号:3code, 微博:3行代码
展开
-
Grep基本用法与正则表达式
1、grep命令功能:输入文件的每一行中查找字符串。基本用法:grep [-acinv] [--color=auto] [-A n] [-B n] '搜寻字符串' 文件名参数说明:-a:将二进制文档以文本方式处理-c:显示匹配次数-i:忽略大小写差异-n:在行首显示行号-A:After的意思,显示匹配字符串后n行的数据-B:before的意思,显示匹配字符串前n行的数据-...原创 2020-04-24 11:16:27 · 990 阅读 · 0 评论 -
UIView转成UIImage
-(UIImage*)convertViewToImage:(UIView*)v{ UIGraphicsBeginImageContext(v.bounds.size); [v.layerrenderInContext:UIGraphicsGetCurrentContext()]; UIImage*image = UIGraphicsG原创 2016-03-07 11:10:43 · 437 阅读 · 0 评论 -
SDWebImage内部实现过程
SDWebImage内部实现过程入口 setImageWithURL:placeholderImage:options: 会先把 placeholderImage 显示,然后 SDWebImageManager 根据 URL 开始处理图片。进入 SDWebImageManager-downloadWithURL:delegate:options:userInfo:,交给 SDI原创 2016-02-21 00:04:59 · 431 阅读 · 0 评论 -
【iOS】判断viewcontroller 来源(展示出来)的4个方法
isMovingFromParentViewController / isMovingToParentViewController :适应于container 和 content viewcontroller 之间。例如:addChildViewController方法,navigationController 中的push 和pop。isBeingPresented / isBeingD原创 2015-12-22 16:13:02 · 6113 阅读 · 0 评论 -
通过自定义的URL Scheme启动你的App
iPhone SDK可以把你的App和一个自定义的URL Scheme绑定。该URL Scheme可用来从浏览器或别的App启动你的App。如何响应从别的App里发给你的URL Scheme申请,由你决定:可以唤醒你的App;也可以传一些信息给你。给自己的App注册一个URL Scheme非常简单,就是在info.plist文件里定义两个键值就OK。如下图所示:添加一个叫URL原创 2015-12-22 10:13:10 · 742 阅读 · 0 评论 -
Resize a UIImage the right way
When deadlines loom, even skilled and experienced programmers can get a little sloppy. The pressure to ship may cause them to cut corners and look for a quick and easy solution, even if that solution转载 2015-12-06 15:00:53 · 587 阅读 · 0 评论 -
Image Resizing Techniques_ iOS图像分辨率
Since time immemorial, iOS developers have been perplexed by a singular question: “How do you resize an image?”. It is a question of beguiling clarity, spurred on by a mutual mistrust of developer and转载 2015-12-06 14:45:10 · 947 阅读 · 0 评论 -
Bézier curve(贝塞尔曲线)
Bézier curve(贝塞尔曲线)是应用于二维图形应用程序的数学曲线。 曲线定义:起始点、终止点(也称锚点)、控制点。通过调整控制点,贝塞尔曲线的形状会发生变化。 1962年,法国数学家Pierre Bézier第一个研究了这种矢量绘制曲线的方法,并给出了详细的计算公式,因此按照这样的公式绘制出来的曲线就用他的姓氏来命名,称为贝塞尔曲线。 以下公式中:B(t)为t时间下 点的转载 2015-12-01 10:44:31 · 3069 阅读 · 0 评论 -
深浅复制
Copy FunctionsIn general, a standard copy operation, which might also be called simple assignment, occurs when you use the= operator to assign the value of one variable to another. The expressio原创 2015-08-31 16:00:35 · 462 阅读 · 0 评论 -
iOS多线程编程——Run Loop
转自:http://www.dreamingwish.com/frontui/article/default/ios-multithread-program-runloop-the.htmlRun LoopsRun loops是线程相关的的基础框架的一部分。一个run loop就是一个事件处理的循环,用来不停的调度工作以及处理输入事件。使用run loop的目的是让你的线程在有工作转载 2015-06-10 20:38:45 · 642 阅读 · 0 评论 -
IOS开发--iOS核心动画
概览在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建基础动画、关键帧动画、动画组、转场动画,如何通过UIView的装饰方法对这些动画操作进行简化等。在今天的文章里您可以看到动画操作在iOS中是如何简单和高效,很多原来想做但是苦于没有思路的动画在iOS中将变得越发简单转载 2015-06-17 21:41:05 · 714 阅读 · 0 评论 -
ios编程笔记:CFSocket
ios编程笔记:CFSocket(服务端)主要函数:第一步:创建 CFSocketRef CFSocketCreate(CFAllocatorRef allocator, //内存分配类型一般为默认KCFAllocatorDefault SInt32 protocolFamily, //协议族,一般为Ipv4:PF_INET,(Ipv6,PF_INET6)SInt3转载 2016-04-18 10:56:35 · 1073 阅读 · 0 评论 -
深入理解run loop
RunLoop 是 iOS 和 OSX 开发中非常基础的一个概念,这篇文章将从 CFRunLoop 的源码入手,介绍 RunLoop 的概念以及底层实现原理。之后会介绍一下在 iOS 中,苹果是如何利用 RunLoop 实现自动释放池、延迟回调、触摸事件、屏幕刷新等功能的。翻译 2016-05-26 17:22:09 · 2250 阅读 · 0 评论 -
掌握iOS8中的动态文本
原文链接 : Swift Programming 101: Mastering Dynamic Type in iOS 8原文作者 : Kevin McNeish译文出自 : 开发技术前线 www.devtf.cn转载声明: 本译文已授权开发者头条享有独家转载权,未经允许,不得转载!译者 : kmyhyApple声称鼓励第三方App能够支持动态文本。但是,如果你尝试在App翻译 2016-05-26 18:07:10 · 5130 阅读 · 0 评论 -
iOS图书动画
原文链接 : How to Create an iOS Book Open Animation: Part 2原文作者 : Vincent Ngo译文出自 : 开发技术前线 www.devtf.cn转载声明: 本译文已授权开发者头条享有独家转载权,未经允许,不得转载!译者 : kmyhy 欢迎回到iOS图书动画系列教程!在第一部分,我们学习了如何创建两个自定义的collection v翻译 2016-05-26 18:13:20 · 1880 阅读 · 0 评论 -
如何做一个iOS分形App
如何做一个iOS分形App原文链接 : 如何做一个iOS分形App原文作者 : Silviu Pop译文出自 : 开发技术前线 www.devtf.cn译者 : alier1226 校对者: MrLoong 状态 : 完成介绍在这个教程中,我们会做一个可以渲染Mandelbrot Set的应用程序,我们可以缩放和平铺它来看分形那令人惊叹的复杂之美。最终的结果如下:翻译 2016-05-26 18:17:25 · 5660 阅读 · 0 评论 -
常用是三方库_插件等汇总
一:第三方插件1:基于响应式编程思想的oc地址:https://github.com/ReactiveCocoa/ReactiveCocoa2:hud提示框地址:https://github.com/jdg/MBProgressHUD3:XML/HTML解析地址:https://github.com/topfunky/hpple4:有文字输入原创 2016-05-16 14:19:14 · 545 阅读 · 0 评论 -
Runtime__iOS利用Runtime自定义控制器POP手势动画
前言苹果在IOS7以后给导航控制器增加了一个Pop的手势,只要手指在屏幕边缘滑动,当前的控制器的视图就会跟随你的手指移动,当用户松手后,系统会判断手指拖动出来的大小来决定是否要执行控制器的Pop操作。nav_pop_origin.gif这个操作的想法非常好,但是系统给我们规定的范围必须是屏幕左侧边缘才可以触发,这样实际使用过程中对于有些产品会产生不便,于是有些app就采取整个屏翻译 2016-06-02 10:46:43 · 3140 阅读 · 0 评论 -
Objective-C消息转发
首先感谢这几个篇文章:http://blog.youkuaiyun.com/mangosnow/article/details/36183535http://blog.sina.com.cn/s/blog_71e456db0100w1bm.htmlhttp://book.51cto.com/art/201403/432146.htmhttp://www.itqx.net/thread-2286翻译 2016-06-02 10:48:49 · 329 阅读 · 0 评论 -
IMP指针的作用
可能大家一直看到有许多朋友在Runtime相关文章中介绍IMP指针的概念,那么IMP究竟有什么实际作用呢?让我们先从一个函数看起来。Method Swizzling如果对Runtime有一定了解的话,一定听说过或者用过这个函数:void method_exchangeImplementations(Method m1, Method m2)它通常叫做method swizzling翻译 2016-06-02 10:50:49 · 529 阅读 · 0 评论 -
Build Active Architecture Only
关于Build Active Architecture Only 的设置问题:1、这个属性设置为yes,是为了debug的时候编译速度更快,它只编译当前的architecture版本。2、而设置为no时,会编译所有的版本。这个是设备对应的architecture:armv6:iPhone 2G/3G,iPod 1G/2Garmv7:iPhone 3GS/4/4s原创 2016-03-03 09:39:41 · 825 阅读 · 0 评论 -
iOS8扩展插件开发配置
来自http://blog.youkuaiyun.com/phunxm/article/details/42715145一.iOS8扩展插件概述WWDC14除了发布了OS X v10.10和switf外,iOS8.0也开始变得更加开放了。说到开放,当然要数应用扩展(App Extension)了。顾名思义,应用扩展允许开发者扩展应用的自定义功能和内容,能够让用户在使用其他应用程序时使用该项功能,从原创 2016-05-20 17:17:28 · 1196 阅读 · 0 评论 -
iOS开发中Settings.bundle的使用
在iOS开发中很多时候开发者需要让用户自行设置一些系统的配置项目,比如让用户设置是否支持在3G模式下加载数据,或者是让用户自己设置支不支持网络数据缓存的功能。另外在企业级应用开发中经常有需要对后台的访问地址进行调整那么需要用户自行的进行配置,下面是爱奇艺和招商银行的设置配置项:Settings.bundle配置说明在Settings.bundle中支持如下几种配置项:1、Gro转载 2016-05-20 17:26:21 · 2081 阅读 · 0 评论 -
iOS 通知中心快速回复
iOS8拥有了全新的通知中心,有全新的通知机制。当屏幕顶部收到推送时只需要往下拉,就能看到快速操作界面,并不需要进入该应用才能操作。在锁屏界面,对于推送项目也可以快速处理。基本上就是让用户尽量在不离开当前页面的前提下处理推送信息,再次提高处理效率。能够进行直接互动的短信、邮件、日历、提醒,第三方应用,可以让你不用进入程序就能进行快捷操作,并专注于手中正在做的事情,用户可以做如下操作:在原创 2016-05-20 17:31:17 · 6245 阅读 · 0 评论 -
开发IOS SDK注意事项
注意事项一:所有类名都应该加前缀说明:没有前缀的类名有冲突的风险。Bad Case:微信分享的 SDK,文件名:WXApiObject.h,代码如下,其中BaseReq类和BaseResp类都没有加前缀。@interface BaseReq : NSObject/** 请求类型 */@property (nonatomic, assign) int type;/转载 2016-07-12 12:02:07 · 604 阅读 · 0 评论 -
防止提交 AppStore 各种事故的发生
6 月 18 日上午,百度云 iOS 版出现了线上事故,他们在提交 AppStore 审核的时候,把名字给弄错了。用户更新 App 之后,看到的 App 名字是 netdisk_iPhone,如下图所示。此后,百度在当天紧急提交了一个加急版本,修复了该问题。百度云在 AppStore 总榜中排名 50 名左右,这次事故虽然不太影响用户使用,但是确实会给用户感觉到一些困扰。比如因为它的名字实转载 2016-07-12 12:10:49 · 643 阅读 · 0 评论 -
iOS中JavaScript和OC交互
在iOS开发中很多时候我们会和UIWebView打交道,目前国内的很多应用都采用了UIWebView的混合编程技术,最常见的是微信公众号的内容页面。前段时间在做微信公众平台相关的开发,发现很多应用场景都是利用HTML5和UIWebView来实现的。机制Objective-C语言调用JavaScript语言,是通过UIWebView的 - (NSString *)stringByEv原创 2016-06-30 16:47:55 · 1175 阅读 · 0 评论 -
OC与JS交互-二
UIWebView是iOS最常用的SDK之一,它有一个stringByEvaluatingJavaScriptFromString方法可以将javascript嵌入页面中,通过这个方法我们可以在iOS中与UIWebView中的网页元素交互。stringByEvaluatingJavaScriptFromString 使用stringByEvaluatingJavaScriptFrom原创 2016-05-20 16:18:02 · 516 阅读 · 0 评论 -
OC与JS交互
实质上oc与js的通信交互就是发送消息,也即函数调用,只要在交互的过程正确的指定好对方需要调用的函数和参数就ok oc-->js stringByEvaluatingJavaScriptFromString,其参数是一NSString字符串内容是js代码(这又可以是一个js函数、一句js代码或他们的组合),当js函数有返回值或一句js代码有值返回可通过stringByEvalua转载 2016-05-20 16:05:21 · 2139 阅读 · 0 评论 -
IOS开发之制作静态库
知识普及:什么是库?库是程序代码的集合,是共享程序代码的一种方式根据源代码的公开情况,库可以分为 2 种类型开源库公开源代码,能看到具体实现比如 SDWebImage 、 AFNetworking闭源库不公开源代码,是经过编译后的二进制文件,看不到具体实现主要分为:静态库、动态库静态库和动态库静态库和动态库的存在形式静态库: .a 和 .fram翻译 2016-07-14 15:15:21 · 485 阅读 · 0 评论 -
强大的vim配置文件,让编程更随意
转自码哥花了很长时间整理的,感觉用起来很方便,共享一下。我的vim配置主要有以下优点:1.按F5可以直接编译并执行C、C++、java代码以及执行shell脚本,按“F8”可进行C、C++代码的调试2.自动插入文件头 ,新建C、C++源文件时自动插入表头:包括文件名、作者、联系方式、建立时间等,读者可根据需求自行更改3.映射“Ctrl + A”为全选并复制快捷键,方便复制代转载 2016-07-15 10:21:22 · 1227 阅读 · 0 评论 -
iOS完整App资源收集
前言iOS开发学习者都希望得到实战训练,但是很多资料都是只有一小部分代码,并不能形成完成的App,笔者在此处收集了很多开源的完整的App,都有源代码哦!本篇文章持续更新中,请持续关注。本篇所收集的内容来源于四面八方,若大家看到好的资源,欢迎在评论中提出,笔者会整理至文章中,谢谢!完整项目zhihuDaily 高防知乎日报IOS-Swift2.0 高仿半糖App 这个开源项目为半原创 2016-07-15 11:03:57 · 2208 阅读 · 0 评论 -
MAC下的文本编辑器 Vim
Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。主要功能根据设定可以和原始vi完全兼容 多缓冲编辑 任意个数的分割窗口(横,竖) 具备列表和字典功能的脚本语言 可以在脚本中调用 Perl, Ruby, Python, Tcl, MzScheme原创 2016-07-15 11:30:01 · 1516 阅读 · 0 评论 -
关于GCD开发的一些事儿
在之前我们介绍过NSOperation的一些东西,这次我们来聊一聊另一个iOS开发最经常使用的技术之一 --- GCD,GCD将线程的管理移到系统级别,你只需要定义好要执行的任务,然后丢到合适的Dispatch queue,GCD会负责创建线程来执行你的代码,由于这部分是处于系统级别,所以执行的性能通常非常高。GCD这部分代码苹果已开源,有兴趣的可以去下载了解一下:地址在介绍GCD之前我们先了转载 2016-07-06 16:38:34 · 742 阅读 · 0 评论 -
iOS app性能优化的那些事(一)
iPhone上面的应用一直都是以流畅的操作体验而著称,但是由于之前开发人员把注意力更多的放在开发功能上面,比较少去考虑性能的问题,可能这其中涉及到objective-c,c++跟lua,优化起来相对复杂一些,导致应用在比如touch等较低端的产品上,光从启动到进入页面就花了将近一分钟的时间,页面之间的切换没有那种很流畅的感觉,内存也居高不下,比较影响应用的用户体验,所以很有必要进行一些优化,下面记转载 2016-07-06 16:51:04 · 1576 阅读 · 0 评论 -
iOS app性能优化的那些事(二)
这次我们来说说iOS app中滑动的那些事。iOS为了提高滑动的流畅感,特意在滑动的时候将runloop模式切换到UITrackingRunLoopMode,在这个过程中专心做跟滑动相关的工作,这也就是在滑动过程中为什么nstimer无法工作的原因,因为两个没在同一mode下面。但我们可能经常会遇到滑动不怎么流畅的情况,比如在项目中碰到在滑动tableview的时候不怎么顺畅,感觉有点不爽,即便是转载 2016-07-06 16:53:51 · 1761 阅读 · 0 评论 -
iOS开发之-- DNS解析(网络切换的问题解决)
上次提到过由于电信的问题需要自己手动去解析dns,介绍的是如何拦截每一个请求做解析,但是没有说具体的解析方法,下面简单的记录一下:res_query方法int res_query(char *domain_name, int class, int type, char *answer_buffer, int answer_buffer_length)这是比较常见的系统调用,使用转载 2016-07-06 16:55:57 · 2522 阅读 · 0 评论 -
iOS block浅析
iOS开发中经常会使用block结合gcd来完成多线程编程,block也属于对象,主要有三种类型:1、 _NSConcreteStackBlock ,存储在栈上;2、_NSConcreteGlobalBlock,存储在程序的数据区域(text段);3、_NSConcreteMallocBlock,存储在堆上。下面分别介绍一下这三种类型的block,block在arc和非arc的模式原创 2016-07-06 17:01:02 · 494 阅读 · 0 评论 -
SDWebImage源码剖析
在开发项目的过程中会用到很多第三方库,比如AFNetWorking,SDWebImage,FMDB等,但一直都没去好好的研究一下,最近刚好项目不是太紧,闲下来可以给自己充充电,先研究一下SDWebImage的底层实现,源码地址:SDWebImage 先介绍一下SDWebImage,我们使用较多的是它提供的UIImageView分类,支持从远程服务器下载并缓存图片。自从iOS5.0开始,NSU原创 2016-07-06 17:02:56 · 1401 阅读 · 0 评论 -
iOS安全系列之一:HTTPS
iOS安全系列之一:HTTPS如何打造一个安全的App?这是每一个移动开发者必须面对的问题。在移动App开发领域,开发工程师对于安全方面的考虑普遍比较欠缺,而由于iOS平台的封闭性,遭遇到的安全问题相比于Android来说要少得多,这就导致了许多iOS开发人员对于安全性方面没有太多的深入,但对于一个合格的软件开发者来说,安全知识是必备知识之一。对于未越狱的iOS设备来说,由于强大的转载 2016-07-18 10:28:24 · 1099 阅读 · 0 评论