Cocoa 并发编程 iOS 中的多线程,是 Cocoa 框架下的多线程,通过 Cocoa 的封装,可以让我们更为方便的进行多线程编程。 在介绍 Cocoa 并发编程之前,我们先理清会提到的几个术语: 线程:就是我们通常提到的线程,在进程中可以用线程去执行一些主进程之外的代码。OS X 中线程的实现基于 POSIX 的 pthread API。 进程:也是我们通常意义上提到的进程,一个正在执行中的
Cocoa 中网络编程层次结构分为三层,自上而下分别是: Cocoa 层:NSURL,Bonjour,Game Kit,WebKit Core Foundation 层:基于 C 的 CFNetwork 和 CFNetServices OS 层:基于 C 的 BSD socket 这里主要介绍处于 Cocoa 层的基于 NSURL 的一系列方法。在 iOS7 之前,主要使用的网络编程 API 是
A collection of HTML head elements. Recommended Minimum Below are the essential tags for basic, minimalist websites: <meta charset="utf-8"> <meta http-equiv="x-ua-compatible" content="ie=edge"> <meta
我不会告诉你有关后台任务的单元测试的任何内容,因为Hangfire没有添加任何特定方法 (除了 IJobCancellationToken 接口参数)去改变任务。使用您最喜爱的工具,并照常写入单元测试。本节介绍如何测试创建的后台任务。 所有的代码示例都使用静态 BackgroundJob 类来告诉你如何做这个或那些东西,只是出于简单演示的目的。但是当你想测试调用的静态方法时,会变得很痛苦。 不用担
概述 JavaScript 层层回调的异步编程让人望而生畏。而 Promise 的诞生就是为了解决这个问题,它提供了一种 Future 模式,大大简化了异步编程的复杂性。而 Promise/A+(中文版)是一个通用的、标准化的规范,它提供了一个可互操作的 then 方法的实现定义。Promise/A+ 规范的实现有很多,它们的共同点就是都有一个标准的 then 方法,而其它的 API 则各不相同。
虽然 Glide 内置了大部分常用模型(URL, Uri, 文件路径等)的支持,你还是可能偶尔会遇到一种 Glide 不支持的类型。你也可能会遇到需要定制或调整 Glide 默认行为的情况。你甚至可能会想要集成一种新的拉取图片的方法,或更换 Glide 目前支持的 集成库 之外的网络库。 好在 Glide 是可扩展的。要添加对一种新的模型(Model)类型的支持,你需要按照以下步骤来执行: 实现一
MinDoc 使用的Markdown编辑器是基于 editor.md 改造而来,大部分功能都和原版保持一致。常用的快捷键如下: Keyboard shortcuts (键盘快捷键) 说明 Description F9 切换实时预览 Switch watch/unwatch F10 全屏HTML预览(按 Shift + ESC 退出) Full preview HTML (Press Shift +
前面介绍了 beego 的一些基础信息,如果你想通过 beego 使用更多高级的功能,那么这里就是你需要的资料。 进程内监控 beego 默认会开启两个端口,一个是 8080 应用端口,对外服务,一个是 8088 端口,用于监控进程内的信息,执行定时任务等。 过滤器 过滤器极大的方便了用户对业务逻辑的扩充,用户可以通过过滤器实现用户认证,访问日志记录、兼容性跳转等。 热升级 热升级是业务开发中经常
nodejs的出现,可以算是前端里程碑式的一个事件,它让前端攻城狮们摆脱了浏览器的束缚,踏上了一个更加宽广的舞台。前端的可能性,从此更加具有想象空间。 随着一系列基于nodes的应用/工具的出现,工作中与nodejs打交道的机会越来越多。无论在node应用的开发,还是使用中,包管理都扮演着一个很重要的作用。NPM(node package manager),作为node的包管理工具,极大地便利了我
Aspect Oriented Programming (AOP,面向切面编程) 在 Objective-C 社区内没有那么有名,但是 AOP 在运行时可以有巨大威力。 但是因为没有事实上的标准,Apple 也没有开箱即用的提供,也显得不重要,开发者都不怎么考虑它。 引用 Aspect Oriented Programming 维基页面: An aspect can alter the behav
编程的抽象 我们将问题空间中的元素以及它们在方案空间的表示物称作“对象”(Object)。当然,还有一些在问题空间没有对应体的其他对象。通过添加新的对象类型,程序可进行灵活的调整,以便与特定的问题配合。与现实世界的“对象”或者“物体”相比,编程“对 象”与它们也存在共通的地方:它们都有自己的状态(state)和行为(behavior)。比如,狗的状态有名字、颜色等,狗的行为有叫唤、摇尾等。 软件世
本章主题 ♦ Python的Web应用:简单的Web客户端 ♦ urlparse和urllib模块 ♦ 高级的Web客户端 ♦ 网络爬虫/蜘蛛/机器人 ♦ CGI:帮助Web服务器处理客户端数据 ♦ 创建CGI应用程序 ♦ 在CGI中使用Unicode ♦ 高级CGI ♦ 创建Web服务器 ♦ 相关模块 20.1 介绍 本章是有关Web编程的介绍,可以帮助你对Python在因特网上的各种基础应用有
Cocos Creator 提供了一系列方法来让用户定制和扩展编辑器的功能。这些扩展以包(package)的形式进行加载。用户通过将自己或第三方开发的扩展包安装到正确的路径进行扩展的加载,根据扩展功能的不同,有时可能会要求用户手动刷新窗口或者重新启动编辑器来完成扩展包的初始化。 Cocos Creator 的扩展包沿用了 Node.js 社区的包设计方式,通过 package.json 描述文件来
编辑器布局是指 Cocos Creator 里各个面板的位置、大小和层叠情况。 选择主菜单里的 布局 菜单,可以从预设的几种编辑器面板布局中选择最适合当前项目的。在预设布局的基础上,您也可以继续对各个面板的位置和大小进行调节。对布局的修改会自动保存在项目所在文件夹下的 local/layout.windows.json 文件中。 调整面板大小 将鼠标悬浮到两个面板之间的边界线上,看到鼠标指针发生变
场景编辑器 是内容创作的核心工作区域,您将使用它选择和摆放场景图像、角色、特效、UI 等各类游戏元素。在这个工作区域里,您可以选中并通过 变换工具 修改节点的位置、旋转、缩放、尺寸等属性,并可以获得所见即所得的场景效果预览。 视图介绍 导航 您可以通过以下的操作,来移动和定位 场景编辑器 的视图: 鼠标右键拖拽 :平移视图。 鼠标滚轮 :以当前鼠标悬停位置为中心缩放视图。 坐标系和网格 场景视图的