Kealdish's Studio.

Kealdish's Studio.

just focus

H5游戏接入技术小结(上)

概览

这段时间忙着做游戏平台H5游戏的接入,趁着刚做完还热乎劲儿,将其中的技术要点总结下来。H5游戏的接入主要分为两个部分:游戏的下载和游戏对战。本篇博客着重讲述游戏的下载部分,下篇博客将着重讲述H5游戏与app通过JS进行数据交互以及在线对战的技术要点。

H5游戏资源本质上是由一些目录以及目录下的文件资源组成,要能够在app中运行H5游戏,就是要在WKWebView的浏览器中用HTTPServer搭建本地服务,然后去加载游戏资源根目录下的index.html文件,换句话说index.html文件是游戏的入口文件。

庖丁解牛KVO(二)——KVO实现原理

概览

在上一篇文章中,我们已经了解了KVO的使用场景以及使用方法。作为Objective-c中异常强大和重要的特性,我们有必要去了解和探索KVO底层的实现机制。

KVO的实现机制到底是怎么样的呢?依据苹果官方文档的介绍:

Automatic key-value observing is implemented using a technique called isa-swizzling.

The is a pointer, as the name suggests, points to the object’s class which maintains a dispatch table. This dispatch table essentially contains pointers to the methods the class implements, among other data.

When an observer is registered for an attribute of an object the isa pointer of the observed object is modified, pointing to an intermediate class rather than at the true class. As a result the value of the isa pointer does not necessarily reflect the actual class of the instance.

You should never rely on the isa pointer to determine class membership. Instead, you should use the class method to determine the class of an object instance.

庖丁解牛KVO(一)——KVO概览和使用

KVO是对Objective-c观察者模式的实现,也是OC非常强大和有用的特性,同时还是实现cocoa bndings的基础(-bind:toObject:withKeyPath:options:)。因此,理解和掌握KVO可以给我们带来很多便利以及意想不到的效果。

KVO可以让观察者在被观察者的属性被修改时直接接收到通知。在KVO的作用下,一个对象可以观察另一个对象的任何属性,同时,也可以知道某个属性的修改前和修改后的值。对多关系的观察者不仅能知道改变发生的类型,而且还能知道哪些对象被改变了。

在通知机制中,KVO与NSNotification提供的通知机制类似,但是也存在很鲜明的区别。NSNotification是以广播的形式将通知传递给所有注册为观察者的对象,即“一对多”,而KVO则会在属性值发生改变时直接将通知传递给观察者,即“点对点”。

【转】UIScrollView实践小记——分页
UIScrollView是iOS中很有意思也是最常用的控件之一,同时也是为数不多可以响应手势的UIKit控件。本篇文章主要研究的是UIScrollView的分页实现。分页有多种实现方法,且各自的效果和优点各不相同,但它们都依赖于UIScrollView的代理方法,所以,我们先从UIScrollViewDelegate说起。 UIScrollViewDelegateUIScrollView有意思的功能都是通过它的 delegate 方法实现的。了解这些方法被触发的条件及调用的顺序对于使用 UIScrollView 是很有必要的。 1- (void)scrollViewDidScroll:(...
Mac workflow小记

在Mac平台下做开发也有一段时间了,虽然说相对于windows平台而言,Mac下的软件资源并不如windows下的那么丰富,但是在适应以及找到合适的软件后,我觉得Mac对我而言更适合做开发。对于开发人员来说,效率至上是毋庸置疑的,因此,拥有一套提升效率的软件和工具对于开发人员来说是至关重要的。这篇博客就记录下我自己开发的workflow,也希望通过这篇博客能与他人分享。

Homebrew

Homebrew之于Mac的关系就跟apt之于Linux的关系是一样的,它实际上是Mac下的套件管理器。比如你想安装MySQL、git等等工具软件,都可以使用homebrew来下载和管理。
homebrew的安装也非常方便,你可以去到它的官网,根据提示进行安装。安装成功后就使用homebrew的命令去下载和管理你需要的工具软件了。

avatar
Kealdish
Hear my roar.
FRIENDS