输出所有偶数

判断myName是否为空

关于教程里的”?”我是没看懂,找啊找,于是发现了这篇文章<Swift之?和!>

一下子解决了好多疑问

 

简单的for循环

遍历数组

while循环遍历

遍历字典

 

 

字典就相当于OC里的NSDictionary,根据视频里的例子

好吧,这里说一下我遇到的一个问题

我觉得我既然开始时候没指定dict的value类型,就应该让我随便添加,我认为这应该算是个bug吧,不知道苹果是怎么考量的,为什么混合的value类型就不允许添加

Swift的数组用[]可以直接声明,里面的元素可以混着写

声明一个空数组

 

一般的字符串之间连接可以直接用加号(+)连接

swift也提供了一种类似于占位符的连接方式,可以连接字符串和其他类型

 

swift支持类型推导,一般用var不需要指定类型

需要指定类型时,可以这样

 

Swift里变量用var,常量用let来定义

变量声明后可以随时改变值,而常量只能赋值一次,再赋值则会直接报错

打开Xcode6,new Project的时候Language选择Swift

就可以看到很简单的一段

就这么简单

我是跟着极客学院的Swift教程学的

顺边说一下,他们的视频还是不错的,没有太多废话

  1. Hello World
  2. 变量与常量
  3. 类型
  4. 字符串连接
  5. 数组
  6. 字典
  7. 循环
  8. 流程控制
  9. 函数
  10. 面向对象
  11. 使用Swift开发iOS项目

教程看完了,总体来说Swift还是非常方便的,有编写脚本语言的爽快感,但目前xcode6beta版的代码提示功能还非常弱,期待正式版

教程里什么时候加标签什么时候不加并没有说清楚

总结了一下,类方法不需要加,构造方法需要加

转自http://www.swfdiy.com/?p=1663

在quick-cocos2dx里, 通过class() 函数进行类的定义

下面贴出quick-cocos2d-x-2.2.1-rc 里 class()的源码

我们先考虑最简单的情况, 在没有继承的情况下定义一个类ClassA

这种情况下, ClassA 跟InstanceA的关系如下图

InstanceA的metatable为ClassA, 而且ClassA.__index = ClassA, 因此,对于InstanceA找不到的属性, 将在ClassA里进行查找。 需要注意的是,ClassA里的属性比如field1, 是相当于类变量的概念,所有实例都公用该属性,并非各自维护该字段的拷贝。

下面如果要再定义ClassB, 从ClassA 进行继承

这种情况下, ClassB 跟InstanceB, ClassA的关系如下图

 

同理,InstanceB里没有定义的属性, 将首先在ClassB里进行搜索, 如果ClassB里搜不到, 将向上追寻到ClassA里。

上面考虑的都只是针对纯Lua类, 在实际情况中, 我们需要对C++里生成的对象(userdata)进行扩展, 可以如下定义

ClassC跟InstanceC的关系如下图

在调用InstanceC(实际上是一个userdata)上的某个方法时, 首先会先去这个userdata绑定的peer这个table里寻找这个方法,如果找不到才会去c++那层调用。

所以我们可以通过给peer添加几个方法从而实现给InstanceC(userdata)扩展方法, 实际情况上也确实如此,在quick里,有几个专门的类,CCNodeExtend,CCLayerExtend,CCSceneExtend,CCSpriteExtend, 使用比如 CCNodeExtend.extend(someCCNodeInstance), 可以生成一个特殊的peer, 这个peer的metatable为CCNodeExtend, 这样我们就可以在someCCNodeInstance上调用CCNodeExtend定义了而原本CCNode没有的方法, 从而实现扩展。

下面再考虑ClassD从ClassC继承的情况

关系图:

===================

最先是看到下面这篇文章的,也写的很棒

相关文章:http://childhood.logdown.com/posts/169509/detailed-quickcocos2dx-inheritance-mechanism