iOS基础
写给自己看的文章
chuanqi.wang
开发人员
展开
-
Objective-C GCD
GCDGCD全称Grand Central Dispatch; 是由C语言编写而成。优点GCD 是系统级别运行, 根据应用所需来分配系统资源, 弄够有效的利用多核,是系统或应用所以更快,更高效的运行。 在ARC下 GCD和正常的Object一样,生命周期由系统进行管理。 使用简单按照业务需求,给GCD添加任务即可。缺点但是创建过多的线程,会耗费更多的系统资源(主线程1M, 其...原创 2019-04-26 14:53:18 · 312 阅读 · 0 评论 -
事件传递和响应链
UIResponder官方文档App通过responder object 来接收和处理事件, UIResponder是responder object的基类;包括UIView,UIWindow,UIWindow,UIApplication及他们的子类。事件传递传递:当我们触摸屏幕时, 该触摸时间会添加到UIApplication管理的事件队列(称为队列的原因时先进先出)中,按顺序取出最...原创 2019-04-18 18:21:24 · 107 阅读 · 0 评论 -
Objective-C 分类和扩展
分类(category)分类不是类动态给类添加方法; 或把类中方法按照逻辑分开,优化代码结构; 给类添加方法不会影响子类; 把Framework私有方法公开; 模拟多继承;(protocol 也是解决多继承问题)使用Test类的.h和.m基本使用#import <Foundation/Foundation.h>@interface Test : NS...原创 2019-03-25 16:00:19 · 194 阅读 · 0 评论 -
NavigationBar 导航栏构成
系统自带导航栏:NaviBar 构造|- navigationBar|- _UIBarBackgroundnavigationBar上第一个view size比navigationBar 高一个statusBar 刘海屏幕高44 普通高20 frame.origin.y (-44/-20)|-UIImageView分割线|-UIVisualEffectView模糊层 naviga...原创 2019-03-08 17:59:13 · 446 阅读 · 0 评论 -
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 · 119 阅读 · 0 评论 -
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 · 164 阅读 · 0 评论 -
iOS copy/mutableCopy关键字
系统提供的不可变和可变对象copy/mutableCopy是由NSCopying/NSMutableCopyingprotocol实现的具体实现如下:以继承NSArray为例表示(只是模拟):@interface CopyArray : NSArray@end@implementation CopyArray-(id)copyWithZone:(NSZone *)zon...原创 2019-04-18 11:43:41 · 187 阅读 · 0 评论 -
atomic和nonatomic
atomic原子操作:操作的最小单位;在操作结束后才能进行下一次操作;@property(atomic, copy) NSString *stringatomic保证string的setter和getter方法原子操作;例如在setter进行setter前不能进行下一次setter操作;但是原子操作在多线程中不能保证线程安全。在方法中加入spinlock_t,会增加系统资源消耗,...原创 2019-03-27 18:56:43 · 111 阅读 · 0 评论 -
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 阅读 · 0 评论 -
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 · 437 阅读 · 0 评论