![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
IOS原生开发
文章平均质量分 60
GengbinZ
14年毕业后任职于中数通信息有限公司的软件工程师岗位
展开
-
Masonry 使用中的一些整理
个人喜欢用纯代码写东西,其中用到最多的就是Masonry,我整理一些使用过程中一些点,方便以后使用.(基本的语法就不说了)首先说几点:我一般将数值类型的约束用mas_equalTo,而相对于某个控件,或者某个控件的某个约束,我会使用equalTo,如:make.size.mas_equalTo(CGSizeMake(100, 100));make.center.equalT转载 2017-03-24 09:55:23 · 222 阅读 · 0 评论 -
Runtime的总结和应用
Runtime(运行时机制):oc代码最终都变成c语言的runtime代码。C语言和oc的区别:c语言编译的时候,就知道你等下会调用哪一个函数!!oc编译的时候,不知道你要调用哪一个方法。动态编译,只有在运行时候,[[obj alloc] init]以后,才能在内存开辟空间,才能在调用的时候找到你这个方法 。 Runtime消息机制: 1、导入<objc/message.h>头文件。 2、xc原创 2017-08-24 21:33:22 · 243 阅读 · 0 评论 -
block块的用法
block块有3种用法:1.block作为对象的属性,2.block作为方法的参数,3.block作为返回值!!!(扩展非常强!!)。 我们现在先来看看第一种用法:block作为对象的属性,好处是把block传给了person类,person对象回调了block块。 Person.h@interface Person : NSObject/** block :ARC使用strong 非ARC原创 2017-08-23 20:34:27 · 720 阅读 · 0 评论 -
多线程NSThread,GCD,NSOperation?
说到多线程呢,就需要先说下进程,进程是系统正在运行的一个应用程序,一个进程想要执行任务,就至少需要开启一个线程,为了提高资源的利用率,我们可以开启多个线程。但是一个cpu只能运行一个线程,多线程是cpu在多个线程来回调度切换的造成并发的假象,所以如果太多线程也会降低线程调用的频率,所以应当开启适当的线程。 ios程序一般会默认开启一条主线程,也称ui线程,主线程主要是用来刷新和显示界面,响原创 2017-08-24 14:38:10 · 218 阅读 · 0 评论 -
UIViewController_Swizzled的原理和使用
实现的功能: 可用于跟踪复杂程序的一个非常简单的类库源码,查看每个viewController的层级嵌套顺序,显示一个UIViewController的时候日志记录一下 原理: 置换 UIViewController 的 viewDidAppear: 方法 Objecitve-C的重要特性是Runtime(运行时),在Interacting with the Runt原创 2017-09-06 16:25:44 · 664 阅读 · 0 评论 -
【2017年最全】 iOS面试题及答案
设计模式是什么? 你知道哪些设计模式,并简要叙述?设计模式是一种编码经验,就是用比较成熟的逻辑去处理某一种类型的事情。 1). MVC模式:Model View Control,把模型 视图 控制器 层进行解耦合编写。 2). MVVM模式:Model View ViewModel 把模型 视图 业务逻辑 层进行解耦和编写。 3). 单例模式:通过static关键词,声明全局变量。在整个进程运转载 2017-08-30 00:26:43 · 276 阅读 · 0 评论 -
iOS SDWebImage的使用和底层原理
一、SDWebImage的使用1、SDWebImage的安装集成有2种方式:(1)直接到github地址下载,链接https://github.com/rs/SDWebImage (2)用cocoapods安装,在文件夹生成的podfile文件中添加pod 'SDWebImage' ,终端cd + 文件位置,然后pod install即可2、UITableView中导...原创 2019-03-08 18:36:57 · 2574 阅读 · 0 评论 -
ios组件化第二讲:本地私有库、基础组件抽取方式和旧有的组件化方式
一、本地私有库 目的:在本地创建私有库,项目pod本地创建的第三方库。 步骤如下: 1、如图,在桌面创建TestProject文件夹,里面再创建TestLib文件夹,里面再创建Classes文件夹,打开终端,cd到Classes文件夹下,输入命令行touch Person.h Person.m,创建Person.h和Person.m文件。接着cd到TestLib文件夹下,在终端输...原创 2019-04-29 23:36:44 · 955 阅读 · 0 评论