自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 AFNetworking 网络状态监控 序列化/反序列化

AFNetworkReachabilityManager简单使用AFNetworkReachabilityManager *reachabilityManager = [AFNetworkReachabilityManager sharedManager];[reachabilityManager setReachabilityStatusChangeBlock:^(AFNetwork...

2019-05-09 14:46:42 348

原创 AFNetworking 介绍和简单实用

AFNetworking githubAFNetworkingAFNetworking 是一个网络请求封装框架,使用简单,功能强大;在AFNetworking 3.x版本 通过封装NSURLSession,通过简单的API是我们可以简单快捷实用。AFNetworking模块NSURLSession 封装NSURLSession的模块 Reachability 网络状态...

2019-05-09 14:46:32 507

转载 iOS runloop 实现功能

一下内容来自深入理解RunLoop首先我们可以看一下 App 启动后 RunLoop 的状态:CFRunLoop { current mode = kCFRunLoopDefaultMode common modes = { UITrackingRunLoopMode kCFRunLoopDefaultMode } co...

2019-05-09 14:46:20 332

原创 iOS runloop 内部实现逻辑

RunLoop 的内部逻辑创建runloopstatic CFRunLoopRef __CFRunLoopCreate(pthread_t t) { CFRunLoopRef loop = NULL; CFRunLoopModeRef rlm; uint32_t size = sizeof(struct __CFRunLoop) - sizeof(CFRunti...

2019-05-09 14:46:00 392

原创 iOS runloop 内部构造

runlooprunloop 死循环,运行循环, 事件循环。我们打开手机,app一直运行不会退出,当我们操作app时,app会立即给我们相应的响应,依赖的就是runloop;runloop 作用:运行循环,保证线程不退出,一直运行 当任务来时,会唤醒线程执行任务 没有任务时,线程进入休眠状态,节省系统资源在OSX/iOS 系统中,runloop相关对象:NSRunLoop...

2019-05-09 14:45:45 156

原创 Objective-C GCD

GCDGCD全称Grand Central Dispatch; 是由C语言编写而成。优点GCD 是系统级别运行, 根据应用所需来分配系统资源, 弄够有效的利用多核,是系统或应用所以更快,更高效的运行。 在ARC下 GCD和正常的Object一样,生命周期由系统进行管理。 使用简单按照业务需求,给GCD添加任务即可。缺点但是创建过多的线程,会耗费更多的系统资源(主线程1M, 其...

2019-04-26 14:53:18 309

原创 Objective-C KVC

KVCKVC(Key-value coding)键值编码,就是指iOS的开发中,可以允许开发者通过Key/keyPath名直接访问对象的属性,或者给对象的属性赋值。。这样就可以在运行时动态地访问和修改对象的属性。主要用途获取对象的私有变量和修改对象私有变量。KVC通过NSObject的分类公开接口(属于foundation下的NSKeyValueCoding.h 文件)取值// ...

2019-04-23 15:55:54 122

原创 Objective-C 观察者 KVO

基本使用:KVO(key value observer)注册观察者//注册观察者:- (void)addObserver:(NSObject *)observer forKeyPath:(NSString *)keyPath options:(NSKeyValueObservingOptions)options context:(void *)context;observer...

2019-04-22 17:57:57 109

原创 Objective-C 属性 成员变量

属性声明@property (nonatomic, copy) NSString *name;系统帮我们做了三件事:-(void)setName:(NSString *)name;-(NSString *)name;_name;setter,getter ,成员变量属性 = setter + getter + 成员变量; (ps: setter/getter的调用只能通...

2019-04-19 15:22:03 436

原创 事件传递和响应链

UIResponder官方文档App通过responder object 来接收和处理事件, UIResponder是responder object的基类;包括UIView,UIWindow,UIWindow,UIApplication及他们的子类。事件传递传递:当我们触摸屏幕时, 该触摸时间会添加到UIApplication管理的事件队列(称为队列的原因时先进先出)中,按顺序取出最...

2019-04-18 18:21:24 107

原创 iOS copy/mutableCopy关键字

系统提供的不可变和可变对象copy/mutableCopy是由NSCopying/NSMutableCopyingprotocol实现的具体实现如下:以继承NSArray为例表示(只是模拟):@interface CopyArray : NSArray@end@implementation CopyArray-(id)copyWithZone:(NSZone *)zon...

2019-04-18 11:43:41 186

原创 Objective-C class_rw_t class_ro_t

apple objc开源代码class_rw_trw: readwrite在objc-runtim-new.h 文件中 源码如下:struct class_rw_t { // Be warned that Symbolication knows the layout of this structure. uint32_t flags; uint32_t v...

2019-04-03 18:24:19 423

原创 Objective-C 关联对象

关联对象是主要是解决在分类中无法保存成员变量的方法;基本使用因为category中没有存储成员变量的地方,所以只能通过关联对象的方式关联把对象和属性关联起来存储。关联对象在runtime中所存在的关联方法typedef OBJC_ENUM(uintptr_t, objc_AssociationPolicy) { OBJC_ASSOCIATION_ASSIGN = 0,...

2019-04-01 19:21:58 292

原创 atomic和nonatomic

atomic原子操作:操作的最小单位;在操作结束后才能进行下一次操作;@property(atomic, copy) NSString *stringatomic保证string的setter和getter方法原子操作;例如在setter进行setter前不能进行下一次setter操作;但是原子操作在多线程中不能保证线程安全。在方法中加入spinlock_t,会增加系统资源消耗,...

2019-03-27 18:56:43 110

原创 Objective-C weak

苹果开源代码weak 弱引用,不持有对象,对象的引用计数不增加; 当对象相互持有时,造成循环引用,导致内存泄漏,weak打破相互持有,防止内存泄漏。用作修饰属性和__weak关键字使用:delegate:@property (nonatomic, weak) id <xxxDelegate> delegate;block:@property (nonat...

2019-03-27 18:51:31 363

原创 Objective-C 分类和扩展

分类(category)分类不是类动态给类添加方法; 或把类中方法按照逻辑分开,优化代码结构; 给类添加方法不会影响子类; 把Framework私有方法公开; 模拟多继承;(protocol 也是解决多继承问题)使用Test类的.h和.m基本使用#import <Foundation/Foundation.h>@interface Test : NS...

2019-03-25 16:00:19 192

原创 Method 使用

Method

2019-03-13 15:41:50 600

原创 NavigationBar 导航栏构成

系统自带导航栏:NaviBar 构造|- navigationBar|- _UIBarBackgroundnavigationBar上第一个view size比navigationBar 高一个statusBar 刘海屏幕高44 普通高20 frame.origin.y (-44/-20)|-UIImageView分割线|-UIVisualEffectView模糊层 naviga...

2019-03-08 17:59:13 443

原创 Objective-C Method SEL IMP

在objc/runtime.h文件中:typedef struct objc_method *Method;struct objc_method { //方法选择器 方法名 SEL _Nonnull method_name OBJC2_UNAVAILABLE; //参数和返回类型 char * _Null...

2019-03-08 17:15:08 103

原创 Objective-C copy

strong, weak,copy,assign都是修饰property并且互斥的(property只能由他们中的一个修饰修饰)。strong对目标对象存在强(所属)关系。weak对目标对象存在弱(非所属)关系。当目标对象释放了,该属性自动被设置为nil。(OS X v10.6 and iOS 4版本前使用assign)copy对目标文件进行复制。(深拷贝和浅拷贝之分)。assig...

2019-02-12 16:52:45 223 1

原创 Objective-C KVC

KVC常用方法//赋值- (void)setValue:(nullable id)value forKey:(NSString *)key;//取值- (nullable id)valueForKey:(NSString *)key;参数key类型NSString value类型id(nullable 可以为nil)eg:MyClass#import "MySubclass.h...

2019-01-31 12:31:48 118

原创 Objective-C KVO

KVO(key value observer) 键值观察者,是一种观察者模式。KVO只能观察属性不能观察成员变量。注册观察者:- (void)addObserver:(NSObject *)observer forKeyPath:(NSString *)keyPath options:(NSKeyValueObservingOptions)options context:(void *)co...

2019-01-29 16:52:00 161

原创 Objective-C setter/getter 成员变量

property 经常使用的是在class中的@interface 块中@interface MyClass : NSObject@property (nonatomic, copy) NSString *name;@end自动会生成一对访问器setter/getter 和一个成员变量即// setter-(void)setName:(NSString *)name{ }/...

2019-01-10 19:20:10 216

原创 Objective-C super

Objective-C super

2019-01-08 16:52:46 263

空空如也

空空如也

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

TA关注的人

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