自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 收藏
  • 关注

原创 Mac 解析xlog文件

1,安装Python 2.7x2,下载安装pyelliptic1.5.7   https://github.com/yann2192/pyelliptic/releases/tag/1.5.7        解压缩终端,cd到pyelliptic-1.5.7,执行:sudo python setup.py install3,下

2018-01-08 10:10:01 5310 1

原创 使用iOS 原生AES加密

使用iOS 原生AES加密

2017-11-09 11:33:52 619

转载 <转>趣谈unicode,ansi,utf-8,unicode big endian这些编码有什么区别

偶然看到,挺有意思,转发扩散~原文地址:http://blog.csdn.net/fanwenbo/article/details/2298800从头讲讲编码的故事。那么就让我们找个草堆坐下,先抽口烟,看看夜晚天空上的银河,然后想一想要从哪里开始讲起。嗯,也许这样开始比较好…… 很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物

2017-11-09 09:18:38 364

原创 iOS 7+,使用原生API生成QRCode。

iOS 7之后,可以通过原生API生成QRCode。

2017-11-08 10:27:32 238

原创 深究block

想了半天不知道怎么开头,那就直接开始吧。其实block在工作中用到的地方很多,功能很强大,只是以前老是听人说:“block会有很多坑,不熟悉的话还是用delegate代替吧”,自己也就知难而退。最近决定深究一下block,以后要广泛使用。一:block的使用场景 “一门技术,如果不为所用,那么学了跟没学一样“。(引自某IT网红)。所以,首要问题就是使用场景。 1:系统API层面,各种U

2016-06-03 18:29:59 379

原创 @synthesize name = _name;

下午突然碰到一个问题: Class.h@interface Class : NSObject@property (nonatomic, copy) NSString *name;@endClass.m@implementation Class- (NSString *)name { return _name;}- (void)setName:(NSString *)name {

2016-04-20 17:51:58 458

原创 object-c 利器之KVO深究(一)-- KVO实现原理

iOS开发中,监听对象某一属性变化而做出响应的模式十分常用,俗称,观察者模式。具体用法十分简单,我们只需给想要监听的对象添加一个观察者就可以实现灵动的操控。如: @interface NSObject(NSKeyValueObserverRegistration)/* Register or deregister as an observer of the value at a key path

2016-02-23 17:05:20 575

转载 Objective-C Runtime

Objective-C Objective-C 扩展了 C 语言,并加入了面向对象特性和 Smalltalk 式的消息传递机制。而这个扩展的核心是一个用 C 和 编译语言 写的 Runtime 库。它是 Objective-C 面向对象和动态机制的基石。Objective-C 是一个动态语言,这意味着它不仅需要一个编译器,也需要一个运行时系统来动态得创建类和对象、进行消息传递和转发。理解 Obje

2016-02-19 17:58:14 312

原创 iOS开发中,__attribute__ 使用场景

在AvailabilityMacros.h 里,定义了很多有用的宏:1,__attribute__(( deprecated()))在外边使用Model的属性或方法时,编译器就会提出警告,形如下图:这样在废弃有些属性时,可以给人提醒。当然系统的DEPRECATED_MSG_ATTRIBUTE(s)也是可以使用。2, __attribute__((un

2016-01-12 11:41:56 428

转载 iOS开发—手动解析CrashLog(二)

在上篇文章《手动解析CrashLog之——方法篇》里介绍了手动解析CrashLog的方法,接下来再说说dwarfdump、atos等解析工具是如何从符号表文件中获取到崩溃位置信息的。一切还得从.dSYM符号表文件开始说起。一、.dSYM文件的生成符号表文件.dSYM实际上是从Mach-O文件中抽取调试信息而得到的文件目录,实际用于保存调试信息的问价是DWARF,其出身可以从苹果

2015-08-26 14:26:20 497

转载 iOS开发—手动解析CrashLog(一)

解决崩溃问题是移动应用开发者最日常的工作之一。如果是开发过程中遇到的崩溃,可以根据重现步骤调试,但线上版本就无能为力了。好在目前已经有很多不错的第三方CrashLog搜集平台(如友盟、Crashlytics等)为我们做好了解析工作,甚至在Xcode7里苹果也跟进了解析线上版本崩溃日志的功能,为开发者减轻了不少负担。尽管通常已经不需要我们手工处理CrashLog,了解CrashLog的还原原理和方法

2015-08-26 14:25:16 545

原创 tableview 使用visual format language自适应cell宽高,和横竖屏

再也不用担心,如何做适配了。使用苹果官方提供的适配方案当然是最正宗的,比第三房框架可控。可以适配各种屏幕尺寸,以及横竖屏,欢迎有独特简介的极客们,提出宝贵意见开发过程中,时常会遇到cell自适应高度与横屏下的宽度,传统的做法要么是手动计算frame,要么就是使用xib。第一种方式,工作量是巨大的(相信很多人深有体会)。第二种方式,对于协同开发和有些不用xib公司来说,有

2015-05-15 16:11:48 1318

原创 iOS所有键盘类型

typedefNS_ENUM(NSInteger, UIKeyboardType) {    UIKeyboardTypeDefault,                // Default type for the current input method.    UIKeyboardTypeASCIICapable,           // Displays a keyboard

2015-02-09 11:01:47 506

转载 iOS图片缓存库基准对比

原文:iOS image caching. Libraries benchmark (SDWebImage vs FastImageCache),译者夜微眠(github地址),校对蓝魂(博客)、Cocoa(博客)。1.引言过去的几年里,iOS应用在视觉方面越来越吸引人。图像展示是其中很关键的部分,因为大部分图像展示都需要下载并且渲染。大部分开发者都要使用图像填充表格视图(ta

2015-02-03 15:50:23 441

转载 iOS Crash文件的解析

有一个WWDC 2010的视频推荐大家抽空看看,视频名称“Understanding Crash Reports on iPhone OS”,该视频详细讲解了Crash文件的结构。当然如果你没时间看的话,不妨阅读以下这篇文章。一、Crash文件结构当程序运行Crash的时候,系统会把运行的最后时刻的运行信息记录下来,存储到一个文件中,也就是我们所说的Crash文件。iOS的Cras

2015-02-03 12:04:07 464

转载 iOS 学习资料整理

这份学习资料是为 iOS 初学者所准备的, 旨在帮助 iOS 初学者们快速找到适合自己的学习资料, 节省他们搜索资料的时间, 使他们更好的规划好自己的 iOS 学习路线, 更快的入门, 更准确的定位的目前所处的位置.该文档会持续更新, 同时也欢迎更多具有丰富经验的 iOS 开发者将自己的常用的一些工具, 学习资料, 学习心得等分享上来, 我将定期筛选合并, 文档尚有一些不完善之处, 也

2015-02-02 18:36:00 1131

转载 黑幕背后的__block修饰符

我们知道在Block使用中,Block内部能够读取外部局部变量的值。但我们需要改变这个变量的值时,我们需要给它附加上__block修饰符。__block另外一个比较多的使用场景是,为了避免某些情况下Block循环引用的问题,我们也可以给相应对象加上__block 修饰符。为什么不使用__block就不能在Block内部修改外部的局部变量?我们把以下代码通过 clang

2015-02-02 10:54:54 752

转载 iOS动画进阶(十五)图层性能

图层性能要更快性能,也要做对正确的事情。 ——Stephen R. Covey在第14章『图像IO』讨论如何高效地载入和显示图像,通过视图来避免可能引起动画帧率下降的性能问题。在最后一章,我们将着重图层树本身,以发掘最好的性能。隐式绘制寄宿图可以通过Core Graphics直接绘制,也可以直接载入一个图片文件并赋值给contents属性,或事先绘制一个屏幕之外

2015-01-27 18:38:25 627

转载 iOS动画进阶(十四)图像IO

图像IO潜伏期值得思考 - 凯文 帕萨特在第13章“高效绘图”中,我们研究了和Core Graphics绘图相关的性能问题,以及如何修复。和绘图性能相关紧密相关的是图像性能。在这一章中,我们将研究如何优化从闪存驱动器或者网络中加载和显示图片。加载和潜伏绘图实际消耗的时间通常并不是影响性能的因素。图片消耗很大一部分内存,而且不太可能把需要显示的图片都保留在内存中,所以

2015-01-27 18:36:21 777

转载 iOS动画进阶(十三)高效绘图

高效绘图不必要的效率考虑往往是性能问题的万恶之源。 ——William Allan Wulf在第12章『速度的曲率』我们学习如何用Instruments来诊断Core Animation性能问题。在构建一个iOS app的时候会遇到很多潜在的性能陷阱,但是在本章我们将着眼于有关绘制的性能问题。软件绘图术语绘图通常在Core Animation的上下文中指代软件绘

2015-01-27 18:27:03 1167

转载 iOS动画进阶(十二)性能调优

性能调优代码应该运行的尽量快,而不是更快 - 理查德在第一和第二部分,我们了解了Core Animation提供的关于绘制和动画的一些特性。Core Animation功能和性能都非常强大,但如果你对背后的原理不清楚的话也会降低效率。让它达到最优的状态是一门艺术。在这章中,我们将探究一些动画运行慢的原因,以及如何去修复这些问题。CPU VS GPU关于绘图和

2015-01-27 18:21:37 1031

转载 iOS动画进阶(十一)基于定时器的动画

基于定时器的动画我可以指导你,但是你必须按照我说的做。 -- 骇客帝国在第10章“缓冲”中,我们研究了CAMediaTimingFunction,它是一个通过控制动画缓冲来模拟物理效果例如加速或者减速来增强现实感的东西,那么如果想更加真实地模拟物理交互或者实时根据用户输入修改动画改怎么办呢?在这一章中,我们将继续探索一种能够允许我们精确地控制一帧一帧展示的基于定时器的动画。

2015-01-27 18:20:47 729

转载 iOS动画进阶(十)缓冲

缓冲生活和艺术一样,最美的永远是曲线。 -- 爱德华布尔沃 - 利顿在第九章“图层时间”中,我们讨论了动画时间和CAMediaTiming协议。现在我们来看一下另一个和时间相关的机制--所谓的缓冲。Core Animation使用缓冲来使动画移动更平滑更自然,而不是看起来的那种机械和人工,在这一章我们将要研究如何对你的动画控制和自定义缓冲曲线。动画速度动画实际上

2015-01-27 18:18:53 762

转载 iOS动画进阶(九)图层时间

图层时间时间和空间最大的区别在于,时间不能被复用 -- 弗斯特梅里克在上面两章中,我们探讨了可以用CAAnimation和它的子类实现的多种图层动画。动画的发生是需要持续一段时间的,所以计时对整个概念来说至关重要。在这一章中,我们来看看CAMediaTiming,看看Core Animation是如何跟踪时间的。CAMediaTiming协议CAMediaT

2015-01-27 18:17:06 663

转载 iOS动画进阶(八)显式动画

显式动画如果想让事情变得顺利,只有靠自己 -- 夏尔·纪尧姆上一章介绍了隐式动画的概念。隐式动画是在iOS平台创建动态用户界面的一种直接方式,也是UIKit动画机制的基础,不过它并不能涵盖所有的动画类型。在这一章中,我们将要研究一下显式动画,它能够对一些属性做指定的自定义动画,或者创建非线性动画,比如沿着任意一条曲线移动。属性动画首先我们来探讨一下属性动画。属性动画

2015-01-27 18:16:31 674

转载 iOS动画进阶(七)隐式动画

隐式动画按照我的意思去做,而不是我说的。 -- 埃德娜,辛普森我们在第一部分讨论了Core Animation除了动画之外可以做到的任何事情。但是动画师Core Animation库一个非常显著的特性。这一章我们来看看它是怎么做到的。具体来说,我们先来讨论框架自动完成的隐式动画(除非你明确禁用了这个功能)。事务Core Animation基于一个假设,说屏幕上的

2015-01-27 17:31:50 689

转载 iOS动画进阶(六)专用图层

专用图层复杂的组织都是专门化的Catharine R. Stimpson到目前为止,我们已经探讨过CALayer类了,同时我们也了解到了一些非常有用的绘图和动画功能。但是Core Animation图层不仅仅能作用于图片和颜色而已。本章就会学习其他的一些图层类,进一步扩展使用Core Animation绘图的能力。CAShapeLayer在第四章『视觉效果』

2015-01-27 17:29:26 720

转载 iOS动画进阶(五)变换

变换很不幸,没人能告诉你母体是什么,你只能自己体会 -- 骇客帝国在第四章“可视效果”中,我们研究了一些增强图层和它的内容显示效果的一些技术,在这一章中,我们将要研究可以用来对图层旋转,摆放或者扭曲的CGAffineTransform,以及可以将扁平物体转换成三维空间对象的CATransform3D(而不是仅仅对圆角矩形添加下沉阴影)。仿射变换在第三章“图层几何

2015-01-27 17:25:37 519

转载 iOS动画进阶(四)视觉效果

视觉效果嗯,圆和椭圆还不错,但如果是带圆角的矩形呢?我们现在能做到那样了么?史蒂芬·乔布斯我们在第三章『图层几何学』中讨论了图层的frame,第二章『寄宿图』则讨论了图层的寄宿图。但是图层不仅仅可以是图片或是颜色的容器;还有一系列内建的特性使得创造美丽优雅的令人深刻的界面元素成为可能。在这一章,我们将会探索一些能够通过使用CALayer属性实现的视觉效果。圆角

2015-01-27 17:24:21 737

转载 iOS动画进阶(三)图层几何学

图层几何学不熟悉几何学的人就不要来这里了 --柏拉图学院入口的签名在第二章里面,我们介绍了图层背后的图片,和一些控制图层坐标和旋转的属性。在这一章中,我们将要看一看图层内部是如何根据父图层和兄弟图层来控制位置和尺寸的。另外我们也会涉及如何管理图层的几何结构,以及它是如何被自动调整和自动布局影响的。布局UIView有三个比较重要的布局属性:frame,bounds

2015-01-27 17:23:56 489

转载 iOS动画进阶(二)寄宿图

寄宿图图片胜过千言万语,界面抵得上千图片 ——Ben Shneiderman我们在第一章『图层树』中介绍了CALayer类并创建了一个简单的有蓝色背景的图层。背景颜色还好啦,但是如果它仅仅是展现了一个单调的颜色未免也太无聊了。事实上CALayer类能够包含一张你喜欢的图片,这一章节我们将来探索CALayer的寄宿图(即图层中包含的图)。contents属性CAL

2015-01-27 17:22:25 525

转载 iOS动画进阶(一)图层树

图层的树状结构巨妖有图层,洋葱也有图层,你有吗?我们都有图层 -- 史莱克Core Animation其实是一个令人误解的命名。你可能认为它只是用来做动画的,但实际上它是从一个叫做Layer Kit这么一个不怎么和动画有关的名字演变而来,所以做动画这只是Core Animation特性的冰山一角。Core Animation是一个复合引擎,它的职责就是尽可能快地组合屏幕

2015-01-27 16:50:11 660 1

转载 Objective-C中的Block

1.相关概念在这篇笔记开始之前,我们需要对以下概念有所了解。1.1 操作系统中的栈和堆注:这里所说的堆和栈与数据结构中的堆和栈不是一回事。我们先来看看一个由C/C++/OBJC编译的程序占用内存分布的结构: 栈区(stack):由系统自动分配,一般存放函数参数值、局部变量的值等。由编译器自动创建与释放。其操作方式类似于数据结构中的栈,即后进先出、

2015-01-21 22:44:45 350

转载 自学 iOS 开发的一些经验

基础一定的编程经验这里说的编程经验是至少熟练一门编程语言,对 OOP 有一定的了解,最好熟悉一些基本的设计模式。遇到过的好多 iOS 开发,大多是从别的语言转过来的,所以有一定的编程基础,学起来会更容易 get the point.如果是第一次接触编程,当然也是没问题的,只是要做好心理准备,可能会比想象的难。英语发现不少开发对于英语似乎有点接受不能,通常都是

2015-01-04 22:09:21 379

转载 iOS开发的一些技巧

TableView不显示没内容的Cell怎么办?类似这种,我不想让下面那些空的显示.很简单.1self.tableView.tableFooterView = [[UIView alloc] init];试过的都说好.加完这句之后就变成了这样.自定义了left

2014-12-31 19:37:19 318

转载 iOS的横屏(Landscape)与竖屏(Portrait)

苹果开发中对iOS应用的横屏(Landscape)和竖屏(Portrait)的支持情况。0. 应用级别的配置大家(特指有iOS开发经验的人)应该都知道Xcode Project的工程配置General页签中有那么四个图(或者4个checkbox),标识对四种interfaceOrientation的支持。分别为Portrait、PortraitUpsideDown、Landsc

2014-12-19 14:41:54 2516

转载 Objective-C Runtime 运行时之六:拾遗

前面几篇基本介绍了runtime中的大部分功能,包括对类与对象、成员变量与属性、方法与消息、分类与协议的处理。runtime大部分的功能都是围绕这几点来实现的。本章的内容并不算重点,主要针对前文中对Objective-C Runtime Reference内容遗漏的地方做些补充。当然这并不能包含所有的内容。runtime还有许多内容,需要读者去研究发现。super在Obje

2014-11-11 12:37:16 311

转载 Objective-C Runtime 运行时之五:协议与分类

Objective-C中的分类允许我们通过给一个类添加方法来扩充它(但是通过category不能添加新的实例变量),并且我们不需要访问类中的代码就可以做到。Objective-C中的协议是普遍存在的接口定义方式,即在一个类中通过@protocol定义接口,在另外类中实现接口,这种接口定义方式也成为“delegation”模式,@protocol声明了可以呗其他任何方法类实现的方法,协议仅仅

2014-11-11 12:35:51 403

转载 Objective-C Runtime 运行时之四:Method Swizzling

在上周associated object一文中,我们开始探索Objective-C运行时的一些黑魔法。本周我们继续前行,来讨论可能是最受争议的运行时技术:method swizzling。 Method swizzling指的是改变一个已存在的选择器对应的实现的过程,它依赖于Objectvie-C中方法的调用能够在运行时进改变——通过改变类的调度表(dispatch table)中

2014-11-11 12:32:05 360

转载 Objective-C Runtime 运行时之三:方法与消息

前面我们讨论了Runtime中对类和对象的处理,及对成员变量与属性的处理。这一章,我们就要开始讨论Runtime中最有意思的一部分:消息处理机制。我们将详细讨论消息的发送及消息的转发。不过在讨论消息之前,我们先来了解一下与方法相关的一些内容。基础数据类型SELSEL又叫选择器,是表示一个方法的selector的指针,其定义如下:1

2014-11-07 09:33:47 411

空空如也

空空如也

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

TA关注的人

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