以上就是给各位分享开始使用swift的c语言库,其中也会对swift调用c语言进行解释,同时本文还将给你拓展#翻译#开始使用SpringDataJPA、cesium编程入门(三)开始使用cesium开
以上就是给各位分享开始使用 swift 的 c语言 库,其中也会对swift调用c语言进行解释,同时本文还将给你拓展#翻译# 开始使用 Spring Data JPA、cesium 编程入门 (三) 开始使用 cesium 开发、Chrome OS 开始使用 PWA 替代部分 Android APP、Chrome 开始使用 SPDY 协议和 Gmail 等应用通信等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:- 开始使用 swift 的 c语言 库(swift调用c语言)
- #翻译# 开始使用 Spring Data JPA
- cesium 编程入门 (三) 开始使用 cesium 开发
- Chrome OS 开始使用 PWA 替代部分 Android APP
- Chrome 开始使用 SPDY 协议和 Gmail 等应用通信
开始使用 swift 的 c语言 库(swift调用c语言)
为了手头上的一个项目,我需要使用 CommonCrypto 库中的 HMAC 函数.虽然苹果在 swift 中已经提供了许多系统库,但是 CommonCrypto 不在其中.庆幸的是,要使用这个库并不怎么费事,只需要做一点额外的工作.
开始访问库
在使用库之前,我们需要通知 Swift编译器.要完成这个过程,我们有两种方式.它们都能在示例工程中正常运行,但是你应该根据你代码的用途来选择具体的方式.好消息是,你随便使用那种方式,然后如果在后面需要另一种的话,要切换那是相当简单.
Objective-c 桥接头文件
最简单的访问一个库的方式是使用 OC 桥接头文件.因为 OC 是 C 的超集.所以这个桥接头文件也能够让你访问纯 C 库.如果你的 swift 工程里面没有桥接头文件,那么自己创建一个,这个步骤简单的要死.
右键你的工程,然后添加一个 OC 文件,随便起个名字(一会我们就删掉这个文件).
一旦你建立好这个文件,Xcode 将会询问你是否需要配置一个 OC 桥接头文件,当然选择”是”.然后删掉你刚刚建立的OC 文件(不是头文件…).这个头文件将会被命名成 项目名- Birdging-Header.h
.打开这个文件,并且导入你需要的 C 库.
需要注意的是,许多库需要额外的链接器设置,例如,在其它链接器标识中的-lfoo
会告诉链接器去链接到 libfoo. 请在你的 Xcode 项目的 Buid settings 里面设置好.
模块图
虽然桥接头文件的方式是如此的简单易行,但是它却有个很关键的局限–你不能在一个framework
类型的工程中使用它.所以,为了弥补这个缺陷,你可以使用”模块”
要使用”模块”,在你的项目目录(目录名是你的项目名称)下来创建一个目录,把这个目录命名为你想使用的库的名字.我是在命令行,没有 Xcode 的保护,然后命名它为 ConmmonCrypto. 在这个目录中,创建一个 module.map 文件,这个文件里面囊括了库的一些设置.对于我的 CommonCrypto,module.map 是这个样子的.
module CommonCrypto [system] {
header "/usr/include/CommonCrypto/CommonCrypto.h"
export *
}
现在添加这个新模块到你的 project setting 中的swift compiler条目下的 Import Paths-Search Path.使用
现在仅仅是确保让你能够把你的模块导入到 swift 文件中.注意,你自己用这种方式建立的所有框架都必须这样导入到你的项目中.
使用 C 函数
一旦你告知了 swift 的编译器关于你将怎么引用 C 库的信息,那么你就可以直接在 swift 代码中直接使用他们了.这个过程中,牵涉到的只是搞清楚哪个 swift 类型匹配哪个 C 类型,而这个过程被 Xcode 的自动补全搞的非常简单,它能帮我们完成大多数重要的内容.这是一个SHA1 HMAC的例子:
func hmac_sha1(data: NSData,key: NSData) -> (NSData?) {
var result = NSMutableData(length: Int(CC_SHA1_DIGEST_LENGTH))
if (result != nil) {
CCHmac(CCHmacAlgorithm(kCCHmacAlgSHA1),
key.bytes,size_t(key.length),
data.bytes,size_t(data.length),
result!.mutableBytes)
}
return result
}
如果你想搞明白对 CCHmac 的调用是如何工作的,你可以查阅这里
这个是函数原型:
CCHmac(CCHmacAlgorithm algorithm, const void *key, size_t keyLength,
const void data, size_t dataLength, void macOut);
英文原文地址:http://spin.atomicobject.com/2015/02/23/c-libraries-swift/
#翻译# 开始使用 Spring Data JPA
在我们刚刚发布项目Spring Data JPA的第一个里程碑时,我想给你一个关于它的简要介绍.正如你所知道的,Spring framework 对于基于JPA的数据存取层提供了支持.那么 Spring Data JPA 是如何添加到Spring中的呢?回答这个问题,我想从一个数据存取组件开始.这个组件提供了一个简单的域(domain),它是用纯JPA和 Spring实现的,而且可以扩展和改进.在我们实现之后,我将用Spring Data JPA 来重构它. 你在以在 GitHub上找到这个小项目的每一次重构的详细指导.
cesium 编程入门 (三) 开始使用 cesium 开发
搭建最简的开发环境
这一节来搭建一个最简单的能运行的 helloworld,以后的代码也会在这一节的基础上慢慢增加
创建文件夹
mkdir cesium-test cd cesium-test
引入编译成果
将 cesium 源码中的 Build 文件夹,拷入 cesium-test
创建 html
将 cesium-1.4.0/Apps/ 中的 HelloWorld.html 拷入 cesium-test 使用 vscode 等编辑器打开 修改 js 和 css 的文件路径
<script src="../Build/Cesium/Cesium.js"></script>
@import url(../Build/Cesium/Widgets/widgets.css);
修改为
<script src="Build/Cesium/Cesium.js"></script>
@import url(Build/Cesium/Widgets/widgets.css);
发布
文件修改完成,如果直接双击 helloworld.html,会报错
这是因为网站需要通过发布才能正常运行,可选择地发布工具有很多,nodejs,php,iis... 等,这里我使用了 php 来发布,打开命令行工具,定位到 cesium-test 目录,执行 php -S localhost:4111 (不一定非要写 4111,端口号的范围从 0 到 65535,尽量不要使用一些特定的端口,比如用于浏览网页服务的 80 端口,用于 FTP 服务的 21 端口等)
➜ cesium-test php -S localhost:4111
PHP 7.1.7 Development Server started at Sun Dec 24 20:42:17 2017
Listening on http://localhost:4111
Document root is /Users/elusive/Documents/githubs/cesium-test
Press Ctrl-C to quit.
打开浏览器,输入 localhost:4111,就能看到熟悉的 helloworld 界面
个人主页 http://cesium.xin
Chrome OS 开始使用 PWA 替代部分 Android APP
据 The Verge 报道,Chrome OS 最近正开始尝试用渐进式 Web 应用程序(Progressive Web Apps,以下简称 PWA)来替代原先的 Android 应用程序。
渐进式 Web 应用程序是依靠普通网页或网站架构起来的网络应用程序,但同时又以传统移动应用程序的形式来呈现,也因此保有原生体验,能够将浏览器提供的功能与移动设备的体验优势相结合。
图片来源:谷歌 web.dev
对于许多 Chromebook 用户来说,这大概是个好消息。在某些情况下,PWA 比 Android 同类产品速度更快、功能更强大。并且,PWA 所占用的储存空间和运行内存都较少。
Chrome OS 上的某些 Android 应用程序体验算不上好,谷歌多年来一直在努力优化可在平板电脑大小的屏幕上运行的 Android 应用程序。不过,谷歌现在决定尝试用 PWA 来直接替代它们。
实际上,PWA 此前也在 Play 应用商店中有提供,区别在于,现在它们成为了默认版本。也就是说,当你下载应用程序时,会自动被识别到系统为 Chrome OS,并开始安装 PWA 而不是 Android 版本。
外媒 Chrome Unboxed 发现,首个被替代的应用程序是 Twitter。Chrome OS 应用程序平台的技术主管 Dominick Ng 透露,下一个将会是 YouTube。
Dominick 表示,这是他“完成过的最具挑战性和满意度的工作之一”。他还贴出了一段关于介绍 PWA 的演讲视频。谷歌近期似乎对 PWA 较为上心,今年年初以来甚至开了一个专题页面来对 PWA 展开介绍。那么,这种趋势会否是应用程序的未来呢?
Chrome 开始使用 SPDY 协议和 Gmail 等应用通信
如果你正在使用 Chrome 浏览器查看 Gmail 邮件的话,那么你很可能已经在不知不觉中开始使用 Google 规划的下一代互联网通讯协议 SPDY 了。
Google 在 2009 年 11 月首次对外宣布了 SPDY 协议,这是 Google 构建快速网络中非常关键的哦一环。在过去的18个月里面,SPDY 已经逐渐被集成到了 Stable 分支的 Chrome 中。简单来说 SPDY 是更先进,更有效率的 HTTP 协议。SPDY 协议可以通过一个单独的 TCP 链接实现并行的多路复用流通信,并且支持优先级,优先传送最重要的 HTML 内容,而其他 JavaScript,视频等不是太重要的内容的优先级则会相对较低。总之,SPDY 协议可以将页面载入时间缩短到现在的一半左右。
SPDY 最大的优势在于其是一个开源项目,现在我们正在使用的 HTTP 1.1 像个笨拙的巨兽,急需一个可以实现低延迟以及实时计算的新协议来取而代之。SPDY 是个非常好的选择,但是现在还没有被大家广泛接受,目前貌似只有一个适用于 Apache 的实验性 mod。
要想现在体验 SPDY 的话,其实非常简单:下载并安装 Chrome ,打开某个 Google 的站点(比如 Gmail),之后在 Chrome 里面打开 chrome://net-internals 即可看到当前活动的 SPDY 进程了。对于使用者来说,SPDY 相比 HTTP 没有任何区别,我们也很难“看”出使用了 SPDY 协议后有什么改进,但是我们肯定可以感觉到 Google 服务在 Chrome 下异常的快,这就是 SPDY 的功劳了。
via downloadsquad
今天的关于开始使用 swift 的 c语言 库和swift调用c语言的分享已经结束,谢谢您的关注,如果想了解更多关于#翻译# 开始使用 Spring Data JPA、cesium 编程入门 (三) 开始使用 cesium 开发、Chrome OS 开始使用 PWA 替代部分 Android APP、Chrome 开始使用 SPDY 协议和 Gmail 等应用通信的相关知识,请在本站进行查询。
本文标签: