文章分类 -  IOS

IOS开发
 
iOS应用代码段瘦身办法
摘要:大型app应对苹果官方代码段大小限制的小伎俩… 背景 苹果官方文档 对二进制 __TEXT 段大小有限制: 代码实在瘦不下去怎么办? 解决方案 利用 rename_section 过审核,在Xcode中向 “Other Linker Flags” 中添加 -Wl,-rename_section,__ 阅读全文
posted @ 2017-10-09 13:37 wenxp2006 阅读(181) 评论(0) 推荐(0)
三种方式使得iOS应用能够在后台进行数据更新和下载
摘要:三种方式使得iOS程序即使在关闭或崩溃的情况下也能够在后台持续进行一些任务,比如更新程序界面快照,下载文件等。这三个方法分别是Background Fetch,Remote Notification和NSURLSession的backgroundSessionConfiguration Backgr 阅读全文
posted @ 2016-12-28 11:08 wenxp2006 阅读(307) 评论(0) 推荐(0)
Block的内存管理
摘要:最近发现很多开发者对block的理解并不是很深,很多项目当中使用的时候多多少会有些问题,今天给大家详细讲讲block的内存管理, 主要从以下几个方面来讲: 根据内存划分block的类型 block内存管理 防止循环引用 Block类型 根据Block在内存中的位置,系统把Block分为3类:NSGl 阅读全文
posted @ 2016-12-16 16:51 wenxp2006 阅读(141) 评论(0) 推荐(0)
Block理解和使用要点
摘要:1、__block关键字的使用 在Block的代码块里,是不能修改在外面定义的变量,并且在给block赋值的时候,已经对代码块里的变量做了值的拷贝(只读不可修改)。 示例代码: int x = 5; int (^block4)(int) = ^(int y) { int z = x + y; ret 阅读全文
posted @ 2016-12-16 16:44 wenxp2006 阅读(112) 评论(0) 推荐(0)
autorelease什么时间释放
摘要:对于每一个Runloop, 系统会隐式创建一个Autorelease pool,这样所有的release pool会构成一个象CallStack一样的一个栈式结构,在每一个Runloop结束时,当前栈顶的Autorelease pool会被销毁,这样这个pool里的每个Object会被release 阅读全文
posted @ 2016-12-15 11:49 wenxp2006 阅读(107) 评论(0) 推荐(0)
iOS开发RunLoop学习:四:RunLoop的应用和RunLoop的面试题
摘要:一:RunLoop的应用 二:面试题: ####1.Runloop基础知识 - 1.1 字面意思 a 运行循环 b 跑圈 - 1.2 基本作用(作用重大) a 保持程序的持续运行(ios程序为什么能一直活着不会死) b 处理app中的各种事件(比如触摸事件、定时器事件【NSTimer】、select 阅读全文
posted @ 2016-11-15 15:05 wenxp2006 阅读(258) 评论(0) 推荐(0)
iOS开发RunnLoop学习二:GCD中的定时器
摘要:#import "ViewController.h" @interface ViewController () /** 注释 */ @property (nonatomic, strong) dispatch_source_t timer; @end @implementation ViewCont 阅读全文
posted @ 2016-11-15 15:04 wenxp2006 阅读(144) 评论(0) 推荐(0)
iOS开发RunLoop学习:三:Runloop相关类(source和Observer)
摘要:一:RunLoop相关类: 其中:source0指的是非基于端口por,说白了也就是处理触摸事件,selector事件,source1指的是基于端口的port:是处理系统的一些事件 注意:创建一个RunLoop之后,有默认的运行模式mode,也可以为RunLoop指定运行模式,RunLoop启动必须 阅读全文
posted @ 2016-11-15 15:04 wenxp2006 阅读(571) 评论(0) 推荐(0)
一:RunLoop的简单介绍
摘要:####1.Runloop基础知识 - 1.1 字面意思 a 运行循环 b 跑圈 - 1.2 基本作用(作用重大) a 保持程序的持续运行(ios程序为什么能一直活着不会死) b 处理app中的各种事件(比如触摸事件、定时器事件【NSTimer】、selector事件【选择器·performSele 阅读全文
posted @ 2016-11-15 15:03 wenxp2006 阅读(169) 评论(0) 推荐(0)
深入理解Objective-C:方法缓存
摘要:摘要 只要用到Objective-C,我们每天都会跟方法调用打交道。我们都知道Objective-C的方法决议是动态的,但是在底层一个方法究竟是怎么找到的,方法缓存又是怎么运作的却鲜为人知。 本文主要从源码角度探究了Objective-C在runtime层的方法决议(Method resolving 阅读全文
posted @ 2016-11-14 10:40 wenxp2006 阅读(106) 评论(0) 推荐(0)
深入理解Objective-C:Category
摘要:摘要 无论一个类设计的多么完美,在未来的需求演进中,都有可能会碰到一些无法预测的情况。那怎么扩展已有的类呢?一般而言,继承和组合是不错的选择。但是在Objective-C 2.0中,又提供了category这个语言特性,可以动态地为已有类添加新行为。如今category已经遍布于Objective- 阅读全文
posted @ 2016-11-10 16:49 wenxp2006 阅读(100) 评论(0) 推荐(0)
Cocoa如何应用设计模式
摘要:在Cocoa中到处都可以找到设计模式的应用,基于模式的机制或架构在Cocoa框架和Objective-C运行环境及语言中是很常见的。Cocoa经常把自己与众不同的工作机制建立在模式上,它的设计受到诸如语言能力或现有架构这样因素的影响。 本部分包含设计模式:可重用的面向对象软件的元素一书中编目的大多数 阅读全文
posted @ 2016-11-09 16:53 wenxp2006 阅读(160) 评论(0) 推荐(0)
Objective-C copy,看我就够了
摘要:一、从面向对象到Objective-C概览copy 1、面向对象: In object-oriented programming, object copying is creating a copy of an existing object, a unit of data in object-or 阅读全文
posted @ 2016-11-09 16:30 wenxp2006 阅读(124) 评论(0) 推荐(0)
Objective-C类族和工厂模式
摘要:相信大家都了解GoF的《Design Patterns》中提到的23种设计模式,其中将常见的设计模式分为三大类:创建型模式、行为型模式、结构型模式。而在《Clean Code》中也提到建造酒店的例子,系统中对象的构建和使用应当分离开,那么应该怎么构建对象更加整洁和符合使用场景就很重要。 在iOS的系 阅读全文
posted @ 2016-11-09 14:02 wenxp2006 阅读(85) 评论(0) 推荐(0)
iOS事件响应链中Hit-Test View的应用
摘要:最近又看了遍苹果的官方文档《Event Handling Guide for iOS》,对事件响应链中的hit-test view 又多了些理解,个人觉的官方文档对这块讲的非常简单,很多东西都是点到为止,hit-test view的知识在项目的任何地方都用到了,但自己反而感知不到,接下来我会给大家讲 阅读全文
posted @ 2016-11-09 10:53 wenxp2006 阅读(304) 评论(0) 推荐(0)
Responder Chain简析
摘要:一.responder对象 在iOS系统中,能够响应并处理事件的对象称之为responder object, UIResponder是所有responder对象的基类,在UIResponder类中定义了处理各种事件,包括触摸事件(Touch Event)、运动事件(Motion Event)和远程控 阅读全文
posted @ 2016-11-09 10:52 wenxp2006 阅读(135) 评论(0) 推荐(0)
详解CALayer 和 UIView的区别和联系
摘要:前言 前面发了一篇iOS 面试的文章,在说到 UIView 和 CALayer 的区别和联系的时候,被喵神指出没有切中要点,所以这里就 CALayer 和 UIView 这个问题重新整理了下。这里会先分条解释,最后会在文章的结尾给出概括性总结。 1.首先UIView可以响应事件,Layer不可以. 阅读全文
posted @ 2016-11-08 14:21 wenxp2006 阅读(143) 评论(0) 推荐(0)
iOS~runtime理解
摘要:Runtime是想要做好iOS开发,或者说是真正的深刻的掌握OC这门语言所必需理解的东西。最近在学习Runtime,有自己的一些心得,整理如下,一为 查阅方便二为 或许能给他人一些启发,三为 希望得到大家对这篇整理不足之处的一些指点。 什么是Runtime 我们写的代码在程序运行过程中都会被转化成r 阅读全文
posted @ 2016-10-28 17:35 wenxp2006 阅读(129) 评论(0) 推荐(0)
iOS多线程技术方案
摘要:目录 一、多线程简介 1、多线程的由来2、耗时操作的模拟试验3、进程和线程4、多线程的概念及原理5、多线程的优缺点和一个Tip6、主线程7、技术方案二、Pthread 1、函数2、参数和返回值3、使用三、NSThread 1、创建一个新的线程2、线程的状态3、线程的属性四、互斥锁 1、访问共享资源引 阅读全文
posted @ 2016-10-28 16:19 wenxp2006 阅读(106) 评论(0) 推荐(0)
iOS 性能调试
摘要:性能调优的方式: 1、通过专门的性能调优工具 2、通过代码优化 1. 性能调优工具: 下面针对iOS的性能调优工具进行一个介绍: 1.1 静态分析工具–Analyze 相信iOS开发者在App进行Build或Archive时,会产生很多编译警告,这些警告是编译时产生的,静态分析的过程也类似,在XCo 阅读全文
posted @ 2016-10-27 16:25 wenxp2006 阅读(176) 评论(0) 推荐(0)