自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 iOS启动优化之Static linking vs Dyld 3

Static linking我们在iOS启动优化之从exec()到main()这篇文章中介绍过,动态链接器在搜索依赖项时进行大量的计算和磁盘IO。静态链接消除了所有dylib搜索的需要-依赖和可执行文件成为一体。因此,可以将一些库静态地链接到主可执行文件中,减少framework的数量,从而达到优化应用程序启动时间的目的。那么如何将framework编译为静态库呢?在Xcode...

2019-10-10 10:19:37 518

原创 iOS应用瘦身

原文地址随着业务的不断迭代,APP安装包会越来越大。包过大既影响用户体验、影响升级率、导致无法提交App Store和非WiFi环境下无法下载的问题。怎样对App进行瘦身成了重中之重。APP ThinningApp Thinning是由苹果公司推出的一项可以改善App下载进程的技术,它只适用于iOS9及以上系统。主要解决了用户下载App耗费过高流量问题,同时还可以节省用户iOS设备的存...

2019-10-09 14:14:21 706

原创 iOS启动优化之Mach-O相关术语

这篇文章讲的是OS启动优化相关的理论部分。Mach-O术语Mach-O是运行时可执行文件的文件类型,这些文件类型包括:可执行文件:应用中最重要的二进制文件,也是应用扩展文件的主二进制文件。Dylib:动态链接库(又称DSO或DLL)。动态链接库包括:iOS中用到的所有系统framework,加载OC runtime方法的libobjc,系统级别的libSystem,例如libdispat...

2019-09-15 12:43:54 299

原创 iOS内存管理之autorelease

当你需要延迟调用release方法的时候会使用autorelease。如:- (NSString *)fullName { NSString *string = [[[NSString alloc] initWithFormat:@"%@ %@", self.firstName, self.lastNam...

2019-06-26 13:26:01 281

原创 【WWDC2019】Xcode 11有哪些新功能?

在刚刚过去的WWDC2019上,苹果向开发者推出了Xcode 11,现在在苹果官网可以下载Xcode 11的Beta版,但据说非常不稳定,所以要谨慎下载。Xcode 11提供了许多新特性和改进,下面我们来详细看一下。Xcode工作流的改进(Workflows)Xcode窗口的右上导航区域做了调整将Version Editor中的log选项卡移到了检查器中,组成了新的Source Con...

2019-06-20 16:34:15 4536

原创 iOS 使用symbolicatecrash工具进行符号化

symbolicatecrash 是 Xcode 自带的 crash 日志分析工具,我们可以通过下列命令找到它:find /Applications/Xcode.app -name symbolicatecrash -type f执行完后,会返回几个路径,我们用:/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.fra...

2018-07-11 21:45:57 462

原创 【iOS】事件响应链

iOS中的事件类型点击事件(Touch Event)运动事件 (Motion Event)远程控制事件 (Remote Control Event)响应者对象定义:能够接收和处理事件的对象。在iOS中,所有的响应者对象都是继承自UIResponder类的实例,常见的子类包括:UIApplication、UIView和UIViewController。UIKit会自动

2017-05-05 12:05:51 342

原创 【iOS】Reactive Cocoa介绍

Reactive Cocoa介绍Reactive Cocoa定义了标准的事件接口,因此可以使用一些基本的工具来更容易的连接、过滤和组合。Reactive Cocoa结合了函数式编程和响应式编程的特点:函数式编程:将运算过程尽量写成一些列的函数调用。响应式编程:面对离散数据流以及对离散数据流进行操作。函数响应式编程:将输入转化为输出在时间上的持续过程的一种方式。传统范式 VS Reactive

2017-04-06 20:24:22 431

原创 【iOS新技术应用之Spotlight 让搜索与app无缝衔接】

Spotlight介绍Spotlight是iOS 9及以上版本支持的一个新特性,让开发者可以将自己应用内的任何数据放到系统全局索引中,当用户在系统的搜索框中输入关键字时,相关的内容就会被展示出来,点击结果就会跳转到相应的app中,从而提高app的日活。 搜索项展示的元素:使用场景当用户升级到iOS9系统以后,出现了下面的使用场景:用户手机上安装的app数量达到上百个时,他突然想要查看一个具体的内

2017-03-24 16:06:13 1089

原创 GCD(Grand Central Dispatch)

什么是GCD?GCD是异步执行任务的技术之一。它通过向系统管理的调度队列(dispatch queues)中提交工作,在多核硬件上同时执行代码。GCD特点提高执行效率:由于GCD提供的是系统级的线程管理,因此其执行效率要高于其它多线程处理方法。使用起来非常简单://在后台线程中执行dispatch_async(queue, ^{ //想执行的任务});//在主线程中执行disp

2017-02-28 19:37:46 284

原创 自定义UIPageControl

iOS系统中,UIPageControl默认的样式如下:在业务开发过程中,很多时候都需要自定义UIPageControl圆点的展示样式及圆点之间的间隔。在网上搜索了如何自定义UIPageControl,比比皆是下面的实现方式://自定义一个UIPageControl的子类-(void) updateDots{ for (int i = 0; i < [self.subviews coun

2017-02-10 11:13:29 953

原创 Swift基础知识

最近闲来无事,准备花一周时间来整理一下Swift中的相关知识,这里整理的主要是Swift官方文档的内容及自己的一些认识,有什么不准确的地方,欢迎大家指正。这一章主要讲Swift的基础知识,旨在让大家对Swift有一个整体的了解,之后后详细的介绍各个部分的详细内容。定义常量和变量Swift中,只用let关键字来定义一个常量,使用var关键字来定义一个变量。let maximumNumberOfLogi

2017-02-09 12:03:04 416

原创 RxSwift:操作符

RxSwift:操作符绑定操作startWith发出指定序列中的元素之前,先发出指定序列中的元素。let disposeBag = DisposeBag()Observable.of("OC", "C", "Java", "C++") .startWith("1") .startWith("2")

2017-01-24 15:40:56 1404

原创 RXSwift:Observable的创建和订阅

Observable是被观察者,也就是发出事件的事件(信号)源。一个观察者只有订阅了Observable,才能接收Observable发送的事件。Observable极其父类定义了创建一系列信号源的方法,及subscribe方法。创建及订阅Observable在Observable的扩展类里提供了一系列创建被观察对象的工厂化方法。never创建一个Never序列,该序列不会发出任何事件,也不会终止

2017-01-16 20:16:19 3713

空空如也

空空如也

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

TA关注的人

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