文档介绍:iOS中Lua脚本的应用
Proteas
2012-07-23
@
概要
•为什么要在应用中引入脚本?
•为什么是 Lua ?
•使用 Lua 开发应用的几种模式
• Hello Lua
• Meta-*: Lua 与 Objective-C 集成的原理
• wax 框架及其本身的一些问题
• Demos
•其它
•目前没有解决的问题
为什么要在应用中引入脚本?
•目前在进行开发应用时遇到的一些问题
– UI 变化
–业务逻辑变化
–数据源不灵活
•如何处理 UI 变化?
•如何处理业务逻辑变化?
•如何解决数据源不灵活的问题?
• ObjC 语言的问题(编译执行)
* Warning:使用 PList 作为配置文件时要谨
慎
为什么是 Lua ?
•设计目标:嵌入到应用程序中(嵌入式)
•体积小:100~200K
•最快的脚本语言(非 JIT)
•简洁的 API
•动态语言
• Domain Specific Language
* 编程语言的哲学:
–编程语言是否都差不多?
– Assembly,C,C++,Java/C#,Python,
mon Lisp
–代码与数据的统一
使用 Lua 开发应用的几种模式
• Lua作为配置文件•宿主语言作为底层
,为宿主语言应用库,Lua 作为逻辑描
提供参数述
Lua
宿主语言
宿主语言
Lua
Corona SDK
* Lua VS. Plist or XML
Hello Lua:什么是 Lua
• Lua是一种脚本编程语言,于1994年,由巴西里
约热内卢天主教大学的研究人员设计开发,
“Lua”这个名字是葡萄牙语单词“月亮”。
•与一般脚本语言如 PHP、Perl、JavaScript 等不
同,Lua被称为是一种嵌入式脚本语言,Lua最著
名的应用是在暴雪公司的网络游戏魔兽世界中。
–《World of Warcraft Programming》
• Lua最引人注目的特点:
–以极小的体积和简单的语法提供相对全面的功能。
–以简洁的API实现与宿主语言最方便的接口。
•在服务器端也有着广泛的应用
Hello Lua:为什么称为“嵌入式”
• Lua语言可以独立进行编程,但这不是其主要的
使用方式。Lua虽然有动态、灵活的语法提供强
大的功能,但并不像 Java、Python 等一样有一
个完善的库(但仍存在一定数量的第三方库),
这不是缺陷,而是和其定位有关。
• Lua最典型的用法,是作为一个库,嵌入到其他
大型语言(称之为宿主语言)的应用程序之中,
为应用程序提供参数配置或逻辑描述等功能,带
来前所未有的灵活性。
• Lua常见的宿主语言有:C/C++,Java,.NET,
甚至脚本语言如PHP,Ruby等。
Hello Lua:工作流程
• 。
• (若有),如函数等
,注册到Lua解释器中,供其使用。
• (可以
从文件、字符串、网络等任意来源)。
• 。
Hello Lua:lua_State
Hello Lua:变量
• Lua 是动态语言,变量没有类型,存储的值才有类型
• var = 4
• var = “hello”
• var = {x = 10, y = 20}
• a, b = 1, 2
•八个基本类型
* 点对