mac下的yum包管理工具MacPorts

这里推荐安装Homebrew,好像安装这个的用户比较的多的,安装命令也非常的简单。

Mac下面除了用dmg、pkg来安装软件外,比较方便的还有用MacPorts来帮助你安装其他应用程序,跟BSD中的ports道理一样。MacPorts就像apt-get、yum一样,可以快速安装些软件。

除了这个还有一些类似的工具:Homebrew 和 Fink。

Flink是直接编译好的二进制包,MacPorts是下载所有依赖库的源代码,本地编译安装所有依赖,Homebrew是尽量查找本地依赖库,然后下载包源代码编译安装。
Flink容易出现依赖库问题,MacPorts相当于自己独立构建一套,下载和编译的东西太多太麻烦,Homebrew的方式最合理。

下面将MacPorts的安装和使用方法记录在这里以备查。

访问官方网站http://www.macports.org/install.php,这里提供有dmg安装和源码安装两种方式,dmg就多说了,下载MacPorts-2.3.3-10.10-Yosemite.pkg,下一步下一步安装即可。

通过Source安装MacPorts

wget http://distfiles.macports.org/MacPorts/MacPorts-1.9.2.tar.gz
tar zxvf MacPorts-1.9.2.tar.gz
cd MacPorts-1.9.2
./configure && make && sudo make install
cd ../
rm -rf MacPorts-1.9.2*

然后将/opt/local/bin和/opt/local/sbin添加到$PATH搜索路径中 Continue reading

mac下安装GD库FreeType

MacBook Pro安装的新系统10.10.3,PHP环境也是默认就有的,GD库在默认情况下也安装过了,但在使用验证码的时候,提示GD库不支持FreeType,这里我们手动安装一下。

法一:

安装 FreeType

前往苹果官方开源支持:http://www.apple.com/opensource/ 查找并下载GD需要的 zlib/libpng/jpeg/freetype/libgd,这里提供一个包及执行脚本:

百度网盘下载 密码:3euq

也可以单个下载安装,例如:

[shell]curl -O http://download.savannah.gnu.org/releases/freetype/freetype-2.4.4.tar.bz2
tar -zxf gd.tar.gz
cd gd
sudo ./install
[/shell]

然后刷新一下 phpinfo(); 或者看一下php支持的库 Continue reading

mac终端中显示tree的命令(转)

寻觅了良久终于找到了mac下如何在终端显示tree的命令了,作为从linux下转过来的人,还没适应mac的finder,还是喜欢在命令行下查看文件。

命令:

find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'

然后手动alias一下,在你的.bash_profile或者.zshrc中添加:

alias tree="find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'"

搞定

要是能显示颜色和控制层级就更好了。

PS:也可以通过brew install tree 安装。

ios8中action segue

os8 action segue 有几种方法,一般选择哪一个,每种方法都有什么用,在什么环境下使用?

57_400607_5f360e47ff35d47

Apple的解释在这里: https://developer.apple.com/library/ios/recipes/xcode_help-IB_storyboard/chapters/StoryboardSegue.html
我的翻译:
Show: 在master或detail区域展现内容(典型的如iPad的设置界面,左侧是master,右侧是detail),究竟是在哪个区要取决于屏幕上的内容,如果不分master/detail,就单纯的把新的内容push到当前view controller stack的顶部
Show Detail: 大致同Show,在detail区域展现内容,如果不分master/detail,新的内容取代当前view controller stack的顶部
Present Modally:模态展示内容
Present as Popover:在当前的view上出现一个小窗口来展示内容,无处不在的“选中文字后出现 复制/翻译 按钮就是这个
Custom:自定义的

swift中的委托delegate的理解

对象.delegate=self是啥意思
委托的意思就是将自己的任务交给其他人去做!

对象.delegate=self的意思就是对象的任务交给self去做 对象!=self

假如你有对象A 对象B

A是B的成员变量

class B {

member A

}

在B中写这么一句“A.delegate=self

就是将对象A的任务交给self(这里是B)去完成(默认情况下是由A来完成还是???,通过在class B中重写class A 中的一些与对象相关的方法函数来实现。)

其实还有两方面的理解:
1.委托是继承的一种实现。比如A委托 给B , B实现了A中的方法。有点类似B继承了A。
2.委托方法能够读取被委托对象的属性和方法,这点可以部分解答了你问的“委托必要性”。

比如A委托 给B,在B中实现的委托方法就可以像A中的其他方法一样访问B中的属性。

官方文档:http://numbbbbb.gitbooks.io/-the-swift-programming-language-/content/chapter2/21_Protocols.html#delegation

委托是一种设计模式(译者注: 想起了那年 UITableViewDelegate 中的奔跑,那是我逝去的Objective-C。。。),它允许结构体将一些需要它们负责的功能交由(委托)给其他的类型的实例。

委托模式的实现很简单: 定义协议封装那些需要被委托的函数和方法, 使其遵循者拥有这些被委托的函数和方法

委托模式可以用来响应特定的动作或接收外部数据源提供的数据,而无需要知道外部数据源的所属类型(译者注:只要求外部数据源遵循某协议)。

let tracker = DiceGameTracker()
let game = SnakesAndLadders()
game.delegate = tracker //委托给tracker对象处理
game.play()