OC知识点
文章平均质量分 64
RL_muyang
积跬步以至千里
展开
-
关于iphone开发中的@property和@synthesize的一些见解
本文转载自:http://blog.csdn.net/likendsl/article/details/7345485转载 2014-10-20 15:15:09 · 253 阅读 · 0 评论 -
OC知识--app优化
CPU和GPU在屏幕成像的过程中,CPU和GPU起着至关重要的作用。1、CPU即是中英处理器,对象的创建和销毁、对象属性的调整、布局计算、文本的计算和排版、图片格式的装欢和转码、图像的绘制等都是CPU处理的。2、GPU即是图片处理器,主要的工作是纹理的渲染。卡顿的原因:卡顿的原因主要是GPU和CPU所花的时间太长,垂直同步信号来的时候,计算和渲染才做还没有完成,所以掉帧了...原创 2019-04-17 10:51:47 · 196 阅读 · 0 评论 -
OC知识--Weak
weak表其实是一个hash(哈希)表,Key是所指对象的地址,Value是weak指针的地址数组weak 实现原理的概括Runtime维护了一个weak表,用于存储指向某个对象的所有weak指针。weak表其实是一个hash(哈希)表,Key是所指对象的地址,Value是weak指针的地址(这个地址的值是所指对象指针的地址)数组。weak 的实现原理可以概括一下三步:1、初始化时...原创 2019-03-07 15:05:45 · 358 阅读 · 0 评论 -
OC知识--多线程
本文主要是分享iOS多线程的相关内容,为了更系统的讲解,将分为以下7个方面来展开描述。多线程的基本概念 线程的状态与生命周期 多线程的四种解决方案:pthread,NSThread,GCD,NSOperation 线程安全问题 NSThread的使用 GCD的理解与使用 NSOperation的理解与使用一、多线程的基本概念进程:可以理解成一个运行中的应用程序,是系统进行资源...原创 2019-03-07 10:06:56 · 563 阅读 · 0 评论 -
OC知识--Runloop
RunLoop 是 iOS 和 OS X 开发中非常基础的一个概念,这篇文章将从 CFRunLoop 的源码入手,介绍 RunLoop 的概念以及底层实现原理。之后会介绍一下在 iOS 中,苹果是如何利用 RunLoop 实现自动释放池、延迟回调、触摸事件、屏幕刷新等功能的。目录RunLoop 的概念 RunLoop 与线程的关系 RunLoop 对外的接口 RunLoop 的 Mo...原创 2019-03-06 21:45:52 · 172 阅读 · 0 评论 -
OC知识--Autoreleasepool
AutoreleasepoolBlock原创 2019-03-06 21:27:22 · 175 阅读 · 0 评论 -
OC知识--RUNTIME
Runtime用处获取属性列表 class_copyPropertylist 获取方法列表 class_copyMethodList 获取成员变量列表 class_copyIvarList 获取协议列表 class_copyProtocolList 方法重写、拦截 动态添加方法 关联对象 方法交换一、面向对象的类 -> 面向过程的结构体类对象(objc_clas...原创 2019-03-06 21:21:22 · 162 阅读 · 0 评论 -
OC知识--KVO
首先我们先介绍KVO的底层实现原理: 我们注册监听的时候,会对注册者动态的创建一个子类对象,然后底层找方法的的isa指针就变成指向新创建的子类对象。当改变注册对象某个属性的时候,就重写属性的set方法来进行监听。这么说可能理解上不是很明白,下面我们结合代码来分析:我们常见一个Person对象是继承与NSObject,有一个name属性。我们把Person的类对象的name属性注册...原创 2019-03-06 21:09:21 · 121 阅读 · 0 评论 -
OC知识点--完整的单例
完整的单例方法,保证init、alloc、copy、mutableCopy时,都能保证只创建唯一单例//.h文件#import <Foundation/Foundation.h>@interface Singleton : NSObject//单例方法+(instancetype)sharedSingleton;@end//.m文件#import "Singleto...原创 2019-03-06 17:58:43 · 219 阅读 · 0 评论 -
资料梳理-- XX && YY
1.@synthesize && @dynamic@synthesize,编译器自动生成setter和getter的方法,在你没有手动去实现这两个方法时。@dynamic,告诉编译器你会动态生成setter和getter方法,不会要编译器帮你生成。2.NSProxy && NSObjectNSProxy应用3.NSCache &&a...原创 2019-03-08 16:44:49 · 428 阅读 · 0 评论 -
OC知识--NSProxy
NSProxy是一个类似于NSObject的根类。NS_ROOT_CLASS@interface NSProxy <NSObject>{ Class isa;}NSProxy实现了包括NSObject协议在内基类所需的基础方法,但是作为一个抽象的基类并没有提供初始化的方法。它接收到任何自己没有定义的方法他都会产生一个异常,所以一个实际的子类必须提供一个初始化方...原创 2019-03-08 15:23:21 · 281 阅读 · 0 评论 -
多线程编程--NSThread
每个iOS应用程序都有个专门用来更新显示UI界面、处理用户的触摸事件的主线程,因此不能将其他太耗时的操作放在主线程中执行,不然会造成主线程堵塞(出现卡机现象),带来极坏的用户体验。一般的解决方案就是将那些耗时的操作放到另外一个线程中去执行,多线程编程是防止主线程堵塞,增加运行效率的最佳方法iOS支持多个层次的多线程编程,层次越高的抽象程度越高,使用也越方便,也是苹果最推荐使用的方法。下面根原创 2016-04-07 10:41:04 · 282 阅读 · 0 评论 -
#import #include @class的区别
如果你是要应用apple提供给你的标准的系统功能函数,那么就用 #import ,如果你要引用其他程序员或者你自己写过的其他代码,那么就用#import "文件名"。原创 2014-10-20 14:36:28 · 288 阅读 · 0 评论 -
iPhone开发之Deep Copy和Shallow Copy的区别
转载自: iPhone开发之Deep Copy和Shallow Copy的区别转载 2014-10-20 15:09:36 · 262 阅读 · 0 评论 -
performSelector: withObject传递参数用法
一个参数- (void)fooOneInput:(NSString *)first{ }[self performSelector:@selector(fooOneInput:) withObject:@"first"];两个参数- (void)fooOneInput:(NSString *)first second{ }[self performSelector:@s原创 2014-10-20 15:37:36 · 1827 阅读 · 0 评论 -
OC知识--app卡顿原因
第一. 界面卡顿的原因在 VSync信号到来后,系统图形服务会通过 CADisplayLink 等机制通知 App,App 主线程开始在 CPU 中计算显示内容,影响因素:对象创建;对象调整;对象销毁;布局计算;Autolayout;文本计算;文本渲染;图片的解码;图像的绘制.随后 CPU 会将计算好的内容提交到 GPU 去,由 GPU进行变换、合成、渲染。随后 GPU 会把渲染结果提交到...原创 2019-04-19 13:27:08 · 624 阅读 · 0 评论