21day 多线程(GCD)
重点: NSThread 多线程基础、pthread、开启线程的3种方式 线程的状态、线程安全问题、线程间的通信 GCD 同步方法和异步方法、队列的使用、线程间的通信 延迟执行、一次性代码、队列组、单例模式-ARC、单例模式-MRC、用宏抽取单例模式 NSOperation...
View Article22day 单例模式
1、单例模式的基本实现 /** 单例模式:一个类只有一个对象 */ @implementation HLMusicTool id _musicTool;//全局变量 /** alloc方法内部会调用这个方法 */ + (instancetype)allocWithZone:(struct _NSZone *)zone{ NSLog(@"%s",__func__);...
View Article22day NSOperation
前言 重点: NSThread 多线程基础、pthread、开启线程的3种方式 线程的状态、线程安全问题、线程间的通信 GCD 同步方法和异步方法、队列的使用、线程间的通信 延迟执行、一次性代码、队列组、单例模式-ARC、单例模式-MRC、用宏抽取单例模式 NSOperation...
View Article22day NSThread
重点: NSThread 多线程基础、pthread、开启线程的3种方式 线程的状态、线程安全问题、线程间的通信 GCD 同步方法和异步方法、队列的使用、线程间的通信 延迟执行、一次性代码、队列组、单例模式-ARC、单例模式-MRC、用宏抽取单例模式 NSOperation...
View Article线程间的通讯
前言 什么叫做线程间通信: 在1个进程中,线程往往不是孤立存在的,多个线程之间需要经常进行通信 1、线程间通信的体现 1)1个线程传递数据给另1个线程 2)在1个线程中执行完特定任务后,转到另1个线程继续执行任务 2、线程间通信常用方法 - (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg...
View Article22day 遇到的问题 \内存管理
内存管理 凡是函数名中带有create、copy、new、retain等字眼的,都应该在不需要这个数据的时候进行release。 GCD的数据类型在ARC环境下不需要进行release;而CF的数据类型在ARC、MRC环境下都需要做release的 /* 内存管理的补充: 1、foundation框架 OC语言 2、core foundation 框架 1)、C语言,例如通讯录就是基于这个框架。...
View Article桥接
1》.在非ARC情况下:如果想将Core Foundation转换为Foundation , 直接强制类型转换即可 2》. ARC 环境下的转换: oc 转换到c __bridge CFStringRef/ __bridge_retained <==>CFBridgingRetain() c对象到oc对象的转换 __bridge octype(NSString) *...
View Article-fobjc-arc 和 -fno-objc-arc 的使用
在非ARC工程中集成ARC代码: 使用-fobjc-arc来标记那些通过ARC编译的第三方源代码。 在ARC工程中集成非ARC的第三方代码,编译库里面的文件需要使用-fno-objc-arc 。 常见错误: --Cast of an indirect pointer to an Objective-C pointer to ‘CFTypeRef ’ (aka ‘const void *‘) is...
View Article开启僵尸对象(Zombie Objects)来定位内存问题
前言 开启该选项后,程序在运行时,如果访问了已经释放的对象,则会给出较准确的定位信息,可以帮助确定问题所在。 该功能的原理 在对象释放(retainCount为0)时,使用一个内置的Zombie对象,替代原来被释放的对象。无论向该对象发送什么消息(函数调用),都会触发异常,抛出调试信息。 //[HSDataTool init]: message sent to deallocated...
View ArticleAndroid侧滑删除另一种实现,SwipeListView补充
前不久在在做聊天删除功能的时候使用SwipeListView进行侧滑删除有一点小问题,因为SwipeListView嵌套在Fragment内的时候,会报一个转换错误,原因是SwipeListView是基于ListView实现的SwipeListView。 针对这个问题,首先想到的就是自定义View。首先看一下实现的效果。 自定义侧滑实现...
View Article20day-、UI综合练习(网易彩票)---主要代码和对应的业务分析
网易彩票业务 1、彩票资讯、中奖排行、个人中奖 2、主要内容 购彩业务模式:代理商机制、资金流 购彩流程: 采种:双色球 3、代理商机制 1)代理商机制的产生原因 让用户的购买投注被国家认可,也是出票合法化 出票门槛高 小公司作为子代理商跟代理商(和有关机构签订协议的企业)打交道 2)代理商的工作 对上与政府部门协调,对下管理子代理商 为每个子代理商分配唯一的标识和密码 3)子代理商可以做的事情...
View ArticleAndroid WebView简要介绍和学习计划
我们通常会在App的UI中嵌入WebView,用来实现某些功能的动态更新。在4.4版本之前,Android WebView基于WebKit实现。不过,在4.4版本之后,Android WebView就换成基于Chromium的实现了。基于Chromium实现,使得WebView可以更快更流畅地显示网页。本文接下来就介绍Android...
View ArticleAndroid WebView加载Chromium动态库的过程分析
Chromium动态库的体积比较大,有27M左右,其中程序段和数据段分别占据25.65M和1.35M。如果按照通常方式加载Chromium动态库,那么当有N个正在运行的App使用WebView时,系统需要为Chromium动态库分配的内存为(25.65 + N x...
View ArticleAndroid WebView执行GPU命令的过程分析
Android WebView使用的Chromium引擎,虽然没有自己的GPU进程或者线程,但是却可以执行GPU命令。原来,Android WebView会给它提供一个In-Process Command Buffer GL接口。通过这个接口,Chromium引擎就可以将GPU命令提交给App的Render Thread执行。本文接下来就详细分析Android...
View ArticleAndroid WebView硬件加速渲染网页UI的过程分析
Android WebView作为App UI的一部分,当App UI以硬件加速方式渲染时,它也是以硬件加速方式渲染的。Android WebView的UI来自于网页,是通过Chromium渲染的。Chromium渲染网页UI的机制与Android App渲染UI的机制是不一样的。不过,它们会一起协作完成网页UI的渲染。本文接下来就详细分析Android...
View Articleandroid EditText,textview显示 特殊字符及自定义字体
在开发的时候,我们经常有碰到需要显示特殊字符的情况,例如如下面的 特殊字符 当然特殊字符不仅仅是这些,要根据自己的业务而定。android 特殊字符 比较全的 :http://www.ztxz.cn/fonts/460.htm,那么如果碰到这样的特殊字符,我们设置到textView 或者EditText会发现是乱码。又或者我们要显示一些特殊样式的字体 这种情况我们的解决方案就是要引入三方的字体库。...
View ArticleiOS 基于Socket使用Protobuf进行数据传输
题记: 最近有需求场景涉及到数据传输,要求尝试一下Protobuf的方式,基于Socket进行传输。 那么这个Protobuf是个啥?我也是mb的,好吧,让我们看看这究竟是什么。 1.Protobuf简介: 简介: Protobuf是一个开源项目,Google开发的,是一个与语言、平台无关,可扩展的序列化、结构化数据交换格式;和我们熟悉的Json和xml做的事情其实差不多;...
View Article