自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (2)
  • 收藏
  • 关注

原创 RunLoop

#概念RunLoop是事件接收和分发机制的一个实现,是线程相关的基础框架的一部分,一个RunLoop就是一个事件处理的循环,用来不停的调度工作以及处理输入事件。RunLoop本质是一个do-while循环,没事做就休息,来活了就干活。与普通的while循环是有区别的,普通的while循环会导致CPU进入忙等待状态,即一直消耗cpu,而RunLoop则不会,RunLoop是一种闲等待,即RunLoop具备休眠功能。#####RunLoop的作用保持程序的持续运行处理APP中的各种事件(触摸、定时器

2022-03-03 10:59:33 1971

原创 AutoReleasePool 底层原理

概念AutoreleasePool(自动释放池)是OC中的一种内存自动回收机制,它可以延迟加入AutoreleasePool中的变量release的时机。在正常情况下,创建的变量会在超出其作用域的时候release,但是如果将变量加入AutoreleasePool,那么release将延迟执行。App启动后,苹果在主线程 RunLoop里注册了两个 Observer,其回调都是 _wrapRunLoopWithAutoreleasePoolHandler(),从程序启动到加载完成,主线程对应的run

2022-03-02 15:32:48 2585

原创 iOS启动优化

#热启动与冷启动冷启动:App点击启动前,此时App的进程还不在系统里,内存中不包含app相关数据,需要系统新创建一个进程分配给App。热启动: App在冷启动后用户将App退回后台,此时App的进程还在系统里,数据仍然存在,用户重新返回App的过程。APP冷启动完整流程冷启动的整个过程是指从用户唤起 App开始到 AppDelegate 中的 didFinishLaunchingWithOptions 方法执行完毕为止,并以执行main()函数的时机为分界点,分为pre-main和 main(

2022-03-01 10:13:56 232

原创 LLVM编流程

LLVM概念LLVM是构架编译器(compiler)的框架系统,以C++编写而成,用于优化任意程序语言编写的程序的编译时间(compile-time)、链接时间(link-time)、运行时间(run-time)以及空闲时间(idle-time)。对开发者保持开放,并兼容已有脚本##传统编译器设计####编译器前端(Frontend)编译器前端的任务是解析源代码(编译阶段),它会进行 词法分析、语法分析、语义分析、检查源代码是否存在错误,然后构建抽象语法树(Abstract Syntax Tr

2022-02-21 16:52:14 2167

原创 block底层

block概念block本质上是一个OC对象(结构体),它享有所有OC对象的待遇,只不过普通OC对象用来封装数据,而block用来封装函数以及函数的调用环境。所谓封装函数,是指block内部会把block的参数、返回值、执行体封装成一个函数,并且存储该函数的内存地址;所谓封装函数的调用环境,是指block内部会捕获变量,并且存储这些捕获的变量。block分类NSGlobalBlock 全局block,位于内存全局区,未引用任何局部变量void (^block)(void) = ^{

2022-02-17 17:54:50 985

原创 isa结构分析

isa结构分析一、isa是什么OC对象本质上对应的为结构体,所有的对象都包含一个isa属性(为第一个成员变量),用来关联对象和存储一些对象的信息。对象通过alloc创建对象分配内存后,调用initInstanceIsa来初始化isa属性,接下来我们先看一下实例方法的实现inline voidobjc_object::initInstanceIsa(Class cls, bool hasCxxDtor){ ASSERT(!cls->instancesRequireRawIsa(..

2020-09-10 14:02:27 655

原创 分类与主类有同名方法的前提下调用顺序

如果是load方法1.load方法的调用是在main()函数之前,且不需要主动调用,程序启动时就会去执行load方法 2.主类与分类加载都会调用load方法,并且主类调用永远优先于分类调用 3.如果是多个分类的情况下,分类的调用顺序取决于编译顺序,如果分类先调用则先加载,后调用则后加载 4.整体总结就是load方法的调用规则是,主类(父类)优先于子类调用,子类优先于分类调用(父类>...

2020-04-24 14:32:24 815

原创 面试题

1、设计模式是什么? 你知道哪些设计模式,并简要叙述?设计模式是一种编码经验,就是用比较成熟的逻辑去处理某一种类型的事情。1). MVC模式:Model View Control,把模型 视图 控制器 层进行解耦合编写。2). MVVM模式:Model View ViewModel 把模型 视图 业务逻辑 层进行解耦和编写。3). 单例模式:通过static关键词,声明全局变量。...

2020-04-21 15:38:33 366

转载 xib适配机型

从接触ios开始,我就是忠实的可视化开发的搬运工——俗称UI拖拽师!本编主要送给那些年热爱xib,喜欢效率的ios程序猿们。它可能解决你多年的心病!一直挥散不去的禁锢于代码的约束,一群技术大牛此时应该会鄙视,但我乐此不疲。正题开始:此篇文章的主要内容是利用运行时和xib的机制,用少许的代码适配所有机型。简单粗暴而不失优雅!用了我这套方法你只要在375的xib里面随心所欲的约束,然后就可以...

2019-05-20 17:18:37 773

原创 串行队列

NSLog(@"1"); dispatch_sync(dispatch_get_global_queue(0, 0), ^{ NSLog(@"2"); }); NSLog(@"3");运行后正常输出,1,2,3NSLog(@"1"); dispatch_sync(dispatch_get_main_queue(), ^{ ...

2019-03-13 20:21:54 512

转载 设置launchImage的尺寸

LaunchScreen.storyboard 在LaunchScreen.storyboard中拖拽imageView并设置约束,勾选右侧Use as launch Screen工程—General—App Icons and Launch Images选项中设置Launch Screen File为所制作的LaunchScreen.storyboard或者LaunchScreen.xibAss...

2018-05-15 10:13:51 809

转载 iOS开发 非常全的三方库、插件、大牛博客等等

UI下拉刷新EGOTableViewPullRefresh- 最早的下拉刷新控件。SVPullToRefresh- 下拉刷新控件。MJRefresh- 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能。可以自定义上下拉刷新的文字说明。具体使用看“使用方法”。 (国人写)XHRefreshControl- XHRefreshContro

2017-11-23 09:36:02 9963

原创 dismiss到跟视图

UIViewController * presentingViewController = self.presentingViewController; while (presentingViewController.presentingViewController) { presentingViewController = prese

2017-11-22 17:56:14 542

转载 iOS_JS与OC的交互详解

背景:UIWebView: iOS 用来展示 web 端内容的控件。1. 核心方法:- (NSString*)stringByEvaluatingJavaScriptFromString:(NSString *)script;script 就是 JS 代码,返回结果为 js 执行结果。 比如一个 JS function 为function testFun

2017-11-08 14:15:02 3067

原创 极光推送与苹果自带推送的差别

极光推送:1. 推送更稳定;APNs 之前的版本有很多硬伤(最近有更新版本有所改进在推送 APNs 时很容易被中断连接,然后需要重新来过。类似这些极光推送因为专业做这个,会有一些措施来补救。2. 性能更好;大容量、并发。3. 推送统计;极光提供了推送成功、推送失败、用户点击等数据的统计。并且结合 App 活跃情况。4. 其他服务;badge (角标)是 iO

2017-10-24 11:18:44 1510

转载 判断数组中含有model解决方法

遇到的问题需求是我需要在一个数组cellModelArray中添加许多对象(这些对象都是自定义模型类的model),获取的数据源中可能包含N个相同的模型,现在往cellModelArray这个数组中添加对象之前要检验一下该数组中是否已经包含一个相同的对象,如果不存在,才添加。分析如果一个数组里面包含的对象都是诸如NSString,NSNumber这样的元素,直接用cocoa提供的API

2017-09-04 17:04:02 1749

转载 获取WiFi列表

iOS 9 发布之后,苹果推出了 NetworkExtension,利用这个框架可以实现很多和网络相关的操作。本文主要介绍怎样使用其中的 NEHotspotHelper 进行设备 WiFi 列表的获取。Demo 地址:https://github.com/EyreFree/EFNEHotspotHelperDemo一. 注意事项首先,NEHotspotHelper 只在

2017-08-25 14:23:00 999

转载 iOS开发:集成支付宝

开发iOS最重要的就是支付了,天朝之内最常用的就是支付宝了,下面就以自己的经历说明如何集成支付宝+遇见的坑.首先,集成支付宝最好别使用Cocoapods,很多人都说使用起来很方便,可是我每次只要使用Cocoapods导入支付宝SDK,总是出现各种莫名其妙的错误,并且还每次都不一样,最终,我只能手动导入.其实可以使用ping++和其他更为方便.如http://winann.b

2017-08-24 13:53:05 339

原创 UItextField 小结

//初始化textfield并设置位置及大小     UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, 30)] //设置边框样式,只有设置了才会显示边框样式   text.borderStyle = UITextBorderStyleRoundedRect; typede

2017-08-24 09:31:58 537

原创 沙盒与数据库

获取Documents目录 // NSUserDomainMask 代表从用户文件夹下找 // YES 代表展开路径中的波浪字符“~” NSArray *documents = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); // 只有一个匹配目录,所以这个集合

2016-02-29 21:30:45 1234

原创 Block与Block进阶

Block :数据库中的最小存储和处理单位。 Block的使用: // 定义一个block变量,变量名是sumBlock // 最左边的int:block的返回值是int类型 // 最右边的(int, int) block接受两个int类型的参数 int (^sumBlock)(int, int); sumBlock = ^(int v1, int v2)

2016-01-18 21:36:16 345

原创 自定义视图与工厂模式

自定义视图: 实现自定义View的步骤: 1 创建一个UIView的子类 2 在初始化方法中添加子视图 3 提供一些接口,给外界操作子视图 其意义就是将包含内容一样的几个控件放在一个View上面,通过外部调用View来声明属性,这样所声明的属性就包含在View中创建的几个控件。 工厂模式: 为UIView提供一个类目,在这个类目中添加方法

2016-01-15 21:36:13 362

原创 屏幕的旋转控制

设置程序支持的旋转方向 设置当屏幕旋转到不同方向时显示不同的内容

2016-01-09 10:32:36 316

原创 UI基础

搭建UI界面时需要注意的问题: 1.bounds :他是在创建了View的前提下,View的坐标已经固定,如果bounds改变则改变的是bound是自身的坐标系,在View中添加外部视图View1时,View1是以改变之后的bounds的坐标系作为自身的坐标系的。 2.masksToBounds:这是设置圆角的时候需要设置的前提,它本身默认是YES,如果想要显示为圆角,改变的是Layer层,当设

2016-01-09 09:38:06 270

原创 单例的创建于数据的加载

#import @interface Person : NSObject// 在这里声明详细信息页面所包含的值对应类型具体值@property (nonatomic, strong)UIImage *photo;@property (nonatomic, copy)NSString *name;@property (nonatomic, copy)NSString *sex

2015-12-24 22:43:33 192

_i_e_m_contact_manager_8h_source.html

iosmath 基于latex的三方封装,能够实现数学与化学公式的显示

2019-10-18

ceshiTextfield.zip

iOS math的简单使用,主要真对于数学公式,可以实现化学公式

2019-10-18

空空如也

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

TA关注的人

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