函数式编程的三个基本概念

1:Pure functions

一个函数的返回结果只与它的参数值有关,没有任何其它可见的影响,它只做一件事情那就是计算返回结果的值。例如

func sum(a: Int, _ b: Int) -> Int {
    return a + b
}

2:First-class functions

可以把一个函数赋值给一个变量。例如

func sayHello() {
    print("Hi!")
}
let greeting = sayHello
greeting()
// prints: Hi!

3:Higher-order functions

函数的参数或者返回值中,最少有一个是函数类型。例如

func inside() -> Void { 
    print("Yo!")
}
// inside's structure: 
// () -> Void

func outside(inner: () -> Void) { 
    inner()
}

outside(inside)
// prints: Yo!

 

 

感谢:Swift Functional Programming: Basic Concepts

solution of “Creating shallow clone of spec repo `master`” very slow

“Creating shallow clone of spec repo `master`”非常慢的解决办法

if your pod Build fails with “[!] Unable to find a pod with“, maybe you should update your cocoapods version, i just update my cocoapods to 1.0.0.rc.2, and the error is gone.


Creating shallow clone of spec repo `master` will clone lots of  files and folders ,  so it will take a very long time.

the solution is there

cd ~/.cocoapods/repos/master   // if this folder is not exit, create one
git fetch --unshallow

you will see the progress like this:

1

zip all the files , about 480M , ,and then  download it, and unzip it for you automatically, it is very fast,  have a try ~

在swift中使用MARK’s,TODO’s and FIXME’s

swift项目不支持预处理命令#pragma,为了继续使用MARK’s,TODO’s and FIXME’s组织我们代码,我么需要使用新的方式

//MARK:

//TODO:

//FIXME:

1

 

进一步,可以通过Run Script,在项目打包的时候让TODO和FIXME出现警告, 提醒我们一些事情还没有完成. 在target的Build Phases中增加新的Run Script

KEYWORDS="TODO|FIXME|\?\?\?:|\!\!\!:"
find "${SRCROOT}" \( -name "*.swift" \) -print0 | \
xargs -0 egrep --with-filename --line-number --only-matching "($KEYWORDS).*\$" | \
perl -p -e "s/($KEYWORDS)/ warning: \$1/"

1

当你Debug 或者build的项目的时候会出现黄色的警告信息.

2

 

 

感谢原文:

https://littlebitesofcocoa.com/207-annotating-swift-with-marks-todo-s-and-fixme-s

Xcode技巧

update time to time…if u know something good ,please tell me ~ thank u ~

  • 快速打开(Open Quickly)

    Command+Shift+O,快速搜索并定位文件、类、函数等。

  • 在项目导航中定位文件(Reveal in Project Navigator)

    默认快捷是Command + Shift + J,你正在编辑一个文件的时候,通过这个命令可以迅速定位它在项目导航器中的位置.

  • 跳转到方法

    默认快捷是Control + 6,快速定位到当前编辑类的某一个方法. Control+6会弹出当前类的所有方法,可以选择跳转到某一个方法,如果直接输入类名可以搜索并快速定位到具体的方法

  • 清除DerivedData文件

    有时候xcode会出现奇怪的错误,清除DerivedData也许可以解决这些问题.这个文件夹包含的文件有caches, compiler waste, build products, etc.

    rm -rf ~/Library/Developer/Xcode/DerivedData
    

    你也可以去appstore购买这个小程序帮助你…Watchdog