自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(77)
  • 资源 (8)
  • 收藏
  • 关注

转载 iOS开发-Runtime详解(简书)(好文章)

简介Runtime 又叫运行时,是一套底层的 C 语言 API,其为 iOS 内部的核心之一,我们平时编写的 OC 代码,底层都是基于它来实现的。比如:[receiver message];// 底层运行时会被编译器转化为:objc_msgSend(receiver, selector)// 如果其还有参数比如:[receiver message:(id)arg...];// 底

2016-11-01 11:04:26 1086

转载 使用 iOS 8 Spring Animation API 创建动画

在iOS9 中,如果进行animateWithDuration 时,view被release 那么会引起crash。[UIView animateWithDuration:0.25f animations:^{ self.frame = selfFrame; } completion:^(BOOL finished) { if (finished

2016-09-26 18:38:08 369

转载 iOS实时卡顿监控

在移动设备上开发软件,性能一直是我们最为关心的话题之一,我们作为程序员除了需要努力提高代码质量之外,及时发现和监控软件中那些造成性能低下的”罪魁祸首”也是我们神圣的职责.众所周知,iOS平台因为UIKit本身的特性,需要将所有的UI操作都放在主线程执行,所以也造成不少程序员都习惯将一些线程安全性不确定的逻辑,以及其它线程结束后的汇总工作等等放到了主线,所以主线程中包含的这些大量计算、IO、绘制

2016-09-22 10:57:44 548

转载 iOS 启动连续闪退保护方案

引言“如果某个实体表现出以下任何一种特性,它就具备自主性:自我修复、自我保护、自我维护、对目标的自我控制、自我改进。” —— 凯文·凯利 iOS App 有时可能遇到启动必 crash 的绝境:每次打开 App 都闪退,无法正常使用App。为了尝试解决这个问题,微信读书开发了 iOS 连续闪退保护工具:GYBootingProtection,检测连续闪退,在连续闪退出现时,尝试

2016-08-18 18:14:06 725

原创 性能优化总结之一

1.首先,图片本身有 3 种常见的编码方式: 第一种是 baseline,即逐行扫描。默认情况下,JPEG、PNG、GIF 都是这种保存方式。第二种是 interlaced,即隔行扫描。PNG 和 GIF 在保存时可以选择这种格式。第三种是 progressive,即渐进式。JPEG 在保存时可以选择这种方式。在下载图片时,首先用 CGImageSource

2016-08-18 18:06:44 500

转载 书架卡顿问题引发的显示类知识梳理&性能检测

1. 问题描述百度阅读 iOS 版书架在宫格、列表模式下进行快速滑动均感觉到明显卡顿,当书架中全部为图书\小说时滑动较流畅,但生成文件夹后卡顿加强。2. iOS 显示原理Vsync是什么?CPU\GPU协同方式?V-Sync 机制是什么?双缓冲工作原理?垂直同步工作原理?掉帧卡顿是如何产生的?避免复制粘贴,上面的这些问题可以从下面这篇文章找到答案:ibireme:如何让

2016-06-12 18:24:24 1574

转载 Objective-C Associated Objects 的实现原理

我们知道,在 Objective-C 中可以通过 Category 给一个现有的类添加属性,但是却不能添加实例变量,这似乎成为了 Objective-C 的一个明显短板。然而值得庆幸的是,我们可以通过 Associated Objects 来弥补这一不足。本文将结合runtime 源码深入探究 Objective-C 中 Associated Objects 的实现原理。在阅读本文

2016-04-20 16:21:15 232

转载 iOS 视图,动画渲染机制探究

在第一和第二部分,我们了解了Core Animation提供的关于绘制和动画的一些特性。Core Animation功能和性能都非常强大,但如果你对背后的原理不清楚的话也会降低效率。让它达到最优的状态是一门艺术。在这章中,我们将探究一些动画运行慢的原因,以及如何去修复这些问题。CPU VS GPU关于绘图和动画有两种处理的方式:CPU(中央处理器)和GPU(图形处理器)。在现代iOS设备中

2016-03-07 15:41:45 958

转载 ios runtime之深入浅出 Cocoa 消息

在入门级别的ObjC 教程中,我们常对从C++或Java 或其他面向对象语言转过来的程序员说,ObjC 中的方法调用(ObjC中的术语为消息)跟其他语言中的方法调用差不多,只是形式有些不同而已。 譬如C++ 中的:Bird * aBird = new Bird();aBird->fly(); 在ObjC 中则如下:Bird

2016-01-25 15:19:28 619

原创 IOS使用Jenkins进行持续集成

前提:jenkins之所以能自动打包是因为xcode带有xcodebuild 和xcrun这两个插件命令。1.下载安装jenkins mac 下用homebrew下载最方便 brew install jenkins (没有homebrew的请安装,可用brew --version 来查看是那个版本和是否已经安装)。2.启动jenkins ,网上的资料都是 java -jar jen

2016-01-04 19:57:26 587

转载 Launch Arguments & Environment Variables

Walk into any American fast food establishment, and you’ll be greeted with a colorful, back-lit display of specials, set menus, and other a la carte items. But as those in-the-know are quick to point

2015-12-30 16:09:31 482

转载 iOS开发,入门级ReactiveCocoa教程(二)

ddReactiveCocoa是一个框架,它能让你在iOS应用中使用函数响应式编程(FRP)技术。在本系列教程的第一部分中,你学到了如何将标准的动作与事件处理逻辑替换为发送事件流的信号。你还学到了如何转换、分割和聚合这些信号。 在本系列教程的第二部分,你将会学到一些ReactiveCocoa的高级功能,包括:•另外两个事件类型:error 和 completed

2015-12-27 12:28:10 347

转载 ReactiveCocoa入门教程:第一部分

作为一个iOS开发者,你写的每一行代码几乎都是在相应某个事件,例如按钮的点击,收到网络消息,属性的变化(通过KVO)或者用户位置的变化(通过CoreLocation)。但是这些事件都用不同的方式来处理,比如action、delegate、KVO、callback等。ReactiveCocoa为事件定义了一个标准接口,从而可以使用一些基本工具来更容易的连接、过滤和组合。如果你对上面说的还比较

2015-12-27 12:26:33 578

转载 iOS 上基于js的monkey的测试

https://github.com/vigossjjj/CrashMonkey4IOS

2015-12-16 13:17:07 376

原创 svn命令下合并分支到主干上教程

1.编写此教程的来由,由于新公司代码管理不是用git,所以只能用蛋疼的SVN了(不可否认git就是多人开发的首选),因为不可能叫领导:"你赶紧给我换git管理,还用SVN",但是这个也只能咱们自己在心里想想就好了。SVN就SVN吧,但是网上管理SVN的分支合并也不知道为什么那么多的雷同,雷同就雷同吧,还一个都是不能用的,也不知道编写者自己是否实验过,反之我是用不了。鉴于此种情况,我想应该把成果分享

2015-12-16 12:30:06 2042

转载 iOS 保持界面流畅的技巧(好文章)

点多这篇文章会非常详细的分析 iOS 界面构建中的各种性能问题以及对应的解决思路,同时给出一个开源的微博列表实现,通过实际的代码展示如何构建流畅的交互。Index演示项目屏幕显示图像的原理卡顿产生的原因和解决方案CPU 资源消耗原因和解决方案GPU 资源消耗原因和解决方案AsyncDisplayKitASDK 的由来ASDK 的资料ASDK 的基

2015-11-15 22:30:42 580

转载 xcodebuild和xcrun的打包

通过一翻搜索和学习,打包这事儿就是让xcrun来干,而xcodebuild只是xrun的一个软链接,但是这一链却有了不同的分工:xcodebuild负责将工程源文件编译成xxx.appxcrun负责给xxx.app(签名并)打包成xxx.ipa先说我是咋干的。第一步清理:/usr/bin/xcodebuild -target targetName clean

2015-11-15 21:59:00 1488

转载 iOS应用架构分享及讨论

源自一篇文章http://casatwy.com/iosying-yong-jia-gou-tan-kai-pian.html,该文章是一系列的,大家可以多看几遍以及看看评论,受益匪浅

2015-10-09 12:00:20 306

转载 Mac上的抓包工具Charles

今天就来看一下Mac上如何进行抓包,之前有一篇文章介绍了使用Fidder进行抓包http://blog.csdn.net/jiangwei0910410003/article/details/19806999不过可惜的是,Fidder使用C#开发的,所以就不能在Mac上使用了,不过还有另外一个抓包神器,就是Charles,它是Java开发的,所以跨平台,不仅可以在Mac上使用,

2015-08-22 09:31:26 417

转载 How to get md5 and SHA1 in objective c (iOS sdk)

Calculating the md5 and sha1 hash in iOS sdk is pretty simple -Step 1 – The very first thing you need to do is import CommonCrypto’s CommonDigest.h#import Step 2 – Here is the real code for cal

2015-08-18 11:21:39 571

转载 KVO底层实现原理

KVO是实现Cocoa Bindings的基础,它提供了一种方法,当某个属性改变时,相对的objects会被通知到。在其他语言中,这种观察者模式通常需要单独实现,而在Objective-C中,通常无须增加额外代码即可使用,这是怎么实现的呢?其实就是通过OC强大的运行时(runtime)实现的。当你第一次观察某个对象时,runtime会创建一个新的继承原先class的subclass。在这个新的

2015-07-21 15:49:03 585

转载 GCD研究

d深入理解 GCD(一)GCD 深入理解:第二部分GCD是基于c的底层api,NSOperation属于object-c类。ios 首先引入的是NSOperation,IOS4之后引入了GCD和NSOperationQueue并且其内部是用gcd实现的。NSOperation:1,NSOperation拥有更多的函数可用,具体查看api。2,在NSOpe

2015-07-21 15:23:48 359

转载 如何更安全的使用Block

前段时间,在公司的项目中发现了内存泄露。查到最后发现是由于没有正确使用Block导致的内存引用循环。简单的解决方案就是补上关键字__weak。那么问题来了,为何[UIView animateWithDuration:animations:completion:]或者GCD中可以不需要声明__weak呢?如何选择回调方式在讲这个问题之前,我们先看看Objcio上是怎么判断使用何种回调

2015-07-17 10:11:05 257

转载 IOS面经系列(二)什么是id ,为什么要用id,在哪用id

谁能告诉我以下这三种声明的区别?    1. id b1;    2. NSObject *b2;    3. id b3;第一种,id类型是运行时的动态类型,仅声明了指向对象的指针,没给编译器任何类型信息,因此,编译器不会做类型检查。由于编译器无法知道它的真实类型,即使你发送一个id类型没有的方法,也不会产生编译警告。因此你可以发送任何信息给id类型的对象(但很危险)。

2015-07-15 22:51:45 557

转载 Objective-C 中 +load 与 +initialize

类的加载在java语言里,可以通过如下代码来实现加载类的时候执行对类的操作,一般叫:类初始块,或者,类加载块。比如: Java代码  public class MyClass{        static{            ……        }    }    在objc语言里,对应的机制是,2个类初始化方法,+(void)load和+(void)i

2015-06-16 13:56:42 221

转载 viewDidUnload和dealloc的执行时机

一直对这个没有什么问题,反正就是疯狂的release。但今天发现原来模拟器可以模拟内存不足时的情况,这使我的程序发生了一些错误,同时也让我对这两家伙了解更多。viewDidUnload 这个只在内存不足时执行,而且是对所有非当前显示的controller执行。你可以通过模拟器执行:硬件》模拟内存警告 来触发。 当己经执行 viewDidUnload的controller重新显示

2015-04-28 11:09:52 304

转载 appstore中关于idfa的选项都是什么意思

最近,好多同学向我们反映,使用了umtrack产品,在appstore提交应用时,审核会被拒。关于这个问题,我想,需要详细地给大家说一说,以便提升大家提交应用的效率。首先,说下umtrack会采集的信息。umtrack会采集用户的idfa、idfv、mac以及ip等信息。那么问题来了,如果你的应用中,没有集成广告,而你又不太清楚这一点的话,你可能会在提交应用时,选择自己的应用未采集

2015-04-05 16:33:24 823

转载 ios中摄像头/相册获取图片,压缩图片,上传服务器方法总结

iphone中图像通常存储在4个地方【相册、应用程序包、沙盒、Internet】,通过这4个源,我们就可以存取应用图片。  相册  iphone的相册包含摄像头胶卷+用户计算机同步的部分照片。用户可以通过UIImagePickerController类提供的交互对话框来从相册中选择图像。但是,注意:相册中的图片机器路径无法直接从应用程序访问,只能通过终端用户去选择和使用相册图片  应用

2015-03-17 18:50:34 327

转载 25条提高iOS App性能的建议和技巧

当我们开发iOS应用时,好的性能对我们的App来说是很重要的。你的用户也希望如此,但是如果你的app表现的反应迟钝或者很慢就会让你得到不好的评论。      然而,由于IOS设备的限制有时很难工作得很正确。我们开发时有很多需要我们记住这些容易忘记的决定对性能的影响。      这是为什么我写这篇文章的原因。这篇文章用备忘录的形式集合了25个技巧和诀窍可以用来提高你的app性能。所以耐心的阅

2015-03-17 18:36:45 358

转载 关于UITableView 设置contentsize

由于UITableView是继承自UIScrollView的,所以他是可以设置contentsize的。但是,我在试验的过程中,初始化UITableView实例后,直接设置它的contentsize是不起作用,在搜寻相关资料得知,UITableView会自动设置contentsize,因为我们在建立tableview的时候是不用自己去设置contentsize的,她是自己计算出来的。 

2015-01-30 16:48:32 943 1

转载 iOS后台任务

根据苹果文档中关于后台执行的描述,任何app都有10分钟左右的后台任务执行时间。 10分钟后,app会被iOS强行挂起。但是,有5类app允许有“无限的”后台运行时间:1.  Audio。2.  Location/GPS。3.  VoIP。4.  Newsstand。5.  Exernal Accessory 。你可以将任何app声明为上述5种类型以获得无限的后台运行时

2015-01-22 12:17:14 518

转载 iOS重绘机制drawRect

iOS的绘图操作是在UIView类的drawRect方法中完成的,所以如果我们要想在一个UIView中绘图,需要写一个扩展UIView 的类,并重写drawRect方法,在这里进行绘图操作,程序会自动调用此方法进行绘图。下面先说明一下绘图,比如,你想绘制一个方块,你需要写一个类来扩展UIView并在drawRect方法中填入如下代码:- (void)drawRect:(CGRect)r

2015-01-20 16:17:43 444

转载 iOS8 Core Location

DD当肾Phone出现,定位服务一直都是作为一个前沿技术跟中心存在。CL API在肾平台SDK第一次发布的时候就列入了公开接口。在每次新发布的iOS版本中,大苹果总是循序渐进的增加一些新功能到CL框架,比如后台定位,geocoding亦或是iBeacons。iOS8义无反顾往前走。更其他领域的最新更新一样,CL已经动摇了,随着新设计允许让开发去创建之前他们无法完成的新东西的同时还帮助保

2014-12-24 00:29:54 646

转载 ios 高德地图 通过索引输出经纬度 根据经纬度 定位

ios 高德地图 通过索引输出经纬度 根据经纬度 定位,有需要的朋友可以参考下。ios 高德地图新出了几个方法,实现地理位置的编码用到了CLGeocoder,CLGeocoder里面一共就下面这几种方法://根据location即经纬度输出具体地址- (void)reverseGeocodeLocation:(CLLocation *)location comple

2014-12-22 18:49:16 4010

转载 iOS地图上WGS84、GCJ-02、BD-09互转解决方案

近来开发的项目涉及地图位置分享模块,android组的同事先开工,用的是百度地图sdk,本人后面开工,用的是iOS SDK的mapkit做,之后问题来了,同一个经纬度坐标在iOS端和Android端出现了比较大偏差。查了下资料苹果地图在大陆的数据源是高德的,查了下高德采用GCJ-02, 百度map sdk 采用的是BD-09,只好写了个类在发送和接收时做好转换,略微蛋疼。Github上有人写了

2014-12-22 17:32:24 1884

转载 IOS开发之 ---- IOS8推送消息注册

iOS8拥有了全新的通知中心,有全新的通知机制。当屏幕顶部收到推送时只需要往下拉,就能看到快速操作界面,并不需要进入该应用才能操作。在锁屏界面,对于推送项目也可以快速处理。基本上就是让用户尽量在不离开当前页面的前提下处理推送信息,再次提高处理效率。    能够进行直接互动的短信、邮件、日历、提醒,第三方应用,可以让你不用进入程序就能进行快捷操作,并专注于手中正在做的事情。 在通知横

2014-12-18 17:26:34 392

转载 iOS 消息推送原理

得到APNS的推送机制与Android上我们自己实现的推送服务不一样,Apple对设备的控制非常严格,消息推送的流程必须要经过APNs:这里 Provider 是指某个应用的Developer,当然如果开发者使用AVOS Cloud的服务,把发送消息的请求委托给我们,那么这里的Provider就是AVOS Cloud的推送服务程序了。上图可以分为三步:第一步

2014-11-19 14:31:43 470

转载 iOS分辨率的那些事儿

ddd1 iOS设备的分辨率iOS设备,目前最主要的有3种(Apple TV等不在此讨论),按分辨率分为两类iPhone/iPod Touch普屏分辨率    320像素 x 480像素Retina分辨率 640像素 x 960像素iPad,iPad2/New iPad普屏        768像素 x 1024像素Retina屏  1536像素 x 204

2014-11-18 19:15:37 527

转载 在iOS开发中使用FMDB

http://blog.devtang.com/blog/2012/04/22/use-fmdb/SQLite (http://www.sqlite.org/docs.html) 是一个轻量级的关系数据库。iOS SDK很早就支持了SQLite,在使用时,只需要加入 libsqlite3.dylib 依赖以及引入 sqlite3.h 头文件即可。但是,原生的SQLite API在使用上

2014-11-18 15:24:33 426

转载 iOS UIWebView 自定义 UserAgent

我的需求是:用户使用我的浏览器浏览网页,服务器可以得到我的浏览器名称和版本号,站长工具能查看到客户端来源。OK,解决思路就是修改系统默认的用户代理UserAgent,这是没差的。曾经做过的App也有这样的需求,思路是在UIWebView 的 Request 的 Header 中设置UserAgent,最后证实这条思路是行不通的,后来由于时间问题,这个功能就放弃了。如今有个App又有这个需求,看

2014-11-18 11:14:42 622

JAVA实现LZW压缩

自己写的LZW压缩。因为自己搜这方面资料时,基本一个样,所以决定把自己分享下。

2013-07-19

哈夫曼压缩技术

基于哈夫曼编码的无损压缩,能处理word 、excel、pdf、图片等压缩,但图片的压缩效率低(用EZW)。

2013-07-01

局域网的数据包监听

1)截获数据包在进行监听之前要先加载sock 2)IP数据包分析先将截获到的数据包转为IP头结构,然后得到包中的协议,在对协议分析

2012-03-24

网页设计配色常识

网页设计配色,让你对着色更了解一套策划正确的网页配色方案 策划正确的配色方案时必须要有一个判断标准

2012-03-24

C语言通讯录

自己用C语言写的通讯录,只是实现了基本的功能,若想更多功能,自己动手,里面有对代码的关键注释

2011-10-09

贪心算法--找硬币问题

是本人自己写的,也没有借鉴他人,用C语言写的

2011-07-02

北邮2010年计算机机试试题

北邮2010年的机判真题 2010北邮复试上机网研的题目:

2011-06-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除