Kenny 肉桂的主页

记录自己的进步


  • 首页

  • 归档

  • 标签

  • 搜索
close

基本配置

发表于 2015-04-05   |   分类于 开发环境相关   |  

mac 配置

  • 显示隐藏文件

defaults write com.apple.finder AppleShowAllFiles -bool true

  • 重启Finder

killall -KILL Finder

Xcode

  • 插件目录 (需要运行任意一个插件工程,此目录才会出现)

~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins

  • 工程模板目录

/Applications/Xcode-Beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project\ Templates/iOS/Application

  • 模拟器路径

/Users/yourUserName/ Library/Developer/CoreSimulator

  • 显示行号

xcode->preferences->text editing->editing
选中 show line numbers

iOS开发中,用脚本实现给文件添加@xx后缀-小脚本大智慧

发表于 2015-04-04   |   分类于 环境、配置相关   |  

脚本是用于执行一些重复性的操作,非常小巧方便.不需要创建工程

context

自己最近手头有个项目,对方的美工是个完全的新手.所以,给的图片,虽然按照分辨率处理妥当(只有@2x版本),但是命名统一没有添加@2x,已经发过来了,让她去每个文件重新命名也是有点不近人情,自己去手动重命名更是傻瓜行为.

这种情况,脚本要粉末登场了.
\<!—more—>

shell

首先想到的是类unix系统的shell,这种强大于windows下cmd的存在.以前,自己仅仅会一些简单地命令行命令.写这种相对具有一定功能的脚本还是第一次,好在,经过各种查找资料,终于写了出来.

1
2
3
4
5
6
7
8
9
10
`# !/bin/bash
append="@2x"
ext="png"
dir=$(eval pwd)

for file in $(ls $dir | grep .$oldext)
do
name=$(ls $file | cut -d. -f1)$append
mv $file ${name}.$ext
done

`
可以看出,即使没有可以精简,只需要不到10行代码即可完成任务.

python

既然想到了脚本,自己难以抑制的就取想python了,于是有了下面的代码

1
2
3
4
5
6
7
8
9
10
`import os

path = '.'

for file in os.listdir(os.curdir):
f,ext=os.path.splitext(file)
if '.png'==ext :
newfile = f+'@2x'+ext
print newfile
os.renames(file,newfile)

`

不出所料,也是非常简单的.

更进一步

现在两者实现的功能都是非常简单地,而且只能命名当前目录的png后缀的文件.最终,我选择用python代码更进一步.

定义两个函数,一个递归增加后缀,一个递归删除后缀(python版本是2.7.9),具体什么操作,只要后面调用一下即可.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
`__author__ = 'katsura'  

import os

def add_suffix(suffix) :
for file in os.listdir(os.path.curdir) :
print file
if file[0:1]() == '.' :
continue
filename,ext = os.path.splitext(file)
if '.png' == ext :
newfilename = filename+suffix+ext
os.renames(file,newfilename)
if os.path.isdir(file) :
origindir = os.getcwd()
newdir = file
os.chdir(newdir)
add_suffix(suffix)
os.chdir(origindir)

def remove_suffix(suffix) :
for file in os.listdir(os.path.curdir) :
#print file
if file[0:1]() == '.' :
continue
filename,ext = os.path.splitext(file)
if '.png' == ext :
newfilename = filename.rstrip(suffix)+ext
os.renames(file,newfilename)
if os.path.isdir(file) :
origindir = os.getcwd()
newdir = file
os.chdir(newdir)
remove_suffix(suffix)
os.chdir(origindir)


add_suffix('@2x')

`

感想

语言就应该仅仅是工具,不应该执迷于语言的学习.因为当你有一定的经验之后,你会发现,什么语言都很简单… 难点是深入下去

开始使用正则表达式-正则表达式

发表于 2015-03-17   |   分类于 其他技术   |  

一些细节的完善

在上篇文章中,我们简单使用了一个正则完成了一些东西,但是也发现了一些问题.那个在线工具并不怎么好用…
经常遇到输入之后,没有匹配.
这也是 web 程序经常遇到的尴尬.所以,我们使用本地应用来进行处理.
笔者的是 mac10.10 ,使用的工具叫做 RegExRx .大家可以选择一款合适的使用.( windows 下的正则程序更加多,功能也很强大)

开始正则之旅

明确了正则的用途之后,我们开始使用正则表达式.还是从一些实际案例出发,我很讨厌一开始就摆上 N 多得概念, 列举出 N 多得符号,根本不让人好好阅读嘛!

符号的延伸

上次我们使用了匹配数字的符号\d,这个是表示数字的意思,但是它只能表示一位数字,于是,我又使用了{m,n}这个符号.

\d还有一种表示方法就是 [0-9] ,[]是字符串列举的意思.
比如[abc]表示匹配a或者b或者c,和\d一样,它只能匹配一个.

常用模式的列举:

[0-9] :表示数字 等价于 \d

[a-z] :表示小写字母

[A-Z] :表示大写字母

在列举的前面加上 ^即可表示 非,比如

[^0-9] :表示非数字

简写的的形式比如 \d,如果要取反,则小写改大写(熟悉 Vim 的人一定亲切),如:
\D:表示非数字

\w 表示单词字符,在英语环境下,等价于 [_a-zA-Z0-9],就是常说的:字母数字下划线

同理,把它大写,就是取反

\W 表示非单词字符,除掉字母数字下划线的内容

匹配空白字符

\s:表示空白字符( space),它和 [ \t\n\r]等价(分别是 空格 制表符 换行符 回车符)
注:有些匹配工具不会高亮换行符号和回车符号
那么很自然的想到
\S 匹配非空白字符,和[ \t\n\r]等价,当然,也可以 [^\s]

匹配任何字符

使用 .可以匹配任何字符,一个点只能匹配一个

使用量词

在最开始的时候,我们已经使用了量词的符号 {},用法也已经解释过了.比如:

.{8} 匹配8个任意字符
但是在实际应用中,我们有三个特殊的量词是大量使用的:
? :表示出现0次或者1次

* :表示出现0次或者多次

+ :表示出现1次或者多次
结语

这次是一个比较枯燥的符号认知的过程.好在,常用的符号我们已经学习完毕,从下篇开始,我们做大量的练习,并学习更高级的知识

从开一个手机号码开始-正则表达式

发表于 2015-03-07   |   分类于 其他技术   |  

正则表达式是描述一组字符串特征的模式,用来匹配特定的字符串.
—Ken Thompson

虽然有点抽象,但是我觉得大家已经模模糊糊的明白了.

阅读全文 »

使用 Homebrew 管理你的mac开发包

发表于 2015-02-28   |   分类于 环境、配置相关   |  

context

很多人可能不了解 Homebrew, 其实它相当于开发软件界的 Appstore.

比如,如果我要安装 python 的最新版本,那么传统的做法是

  1. 到官方网站下载 python 的最新版本
  2. 极其麻烦和小心翼翼的删除自带的 python 版本
  3. 安装新的版本
  4. 设置环境变量

而借助 Homebrew, 需要做的仅仅是:
brew uninstall python
然后
brew install python

整个过程只是等待而已,不需要百度 python 的官方网址,不需要找卸载安装配置环境变量教程…

安装 Homebrew

更多的好处就会在你以后的使用中被发掘.
下面我们进行 Homebrew 的安装.

打开终端,输入以下命令:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"objc

注意:

  • 因网络的原因,可能会不成功,请多尝试几次,一直到成功安装.

  • 中间会出现一个 Press RETURN to continue or any other key to abort,请及时回车,并输入密码,不要傻等着…

  • 不要加 sudo, 加了也没关系,待会会提示你 Don’t run as root

  • 如果出现了某个包导致的安装失败,你仅需要按照提示进行操作即可

当看到下面的内容时 ,证明已经安装成功了.

注: 本文来自本人早期在 csdn 上撰写的文章,内容为原创

高效OC编程-用枚举表示状态、选项、状态码

发表于 2015-01-15   |   分类于 iOS Tips   |  

由于Objective-C 基于C 语言,所以C 语言有的功能它都有。其中之一就是枚举类型:

enum 系统框架中频繁用到此类型,然而开发者容易忽视它。在以一系列常量来表示错误状态码或可组合的选项时,极宜使用枚举为其命名。由于C++11 标准扩充了枚举的特性所以最新版系统框架使用了“强类型”(strong type)的枚举。没错,Objective-C 也能得益于
C++11 标准。
枚举只是一种常量命名方式。某个对象所经历的各种状态就可以定义为一个简单的枚举集(enumeration set)。比如说,可以用下列枚举表示“套接字连接”(socket connection)的状态:

1
2
3
4
5
6
7
8
enum EOCConnectionState {
EOCConnectionStateDisconnected,

EOCConnectionStateConnecting,

EOCConnectionStateConnected,

};
阅读全文 »
1…111213
桂庆

桂庆

Kenny 肉桂的主页 记录自己的进步

75 日志
17 分类
23 标签
RSS
微博
© 2013 - 2017 桂庆
由 Hexo 强力驱动
主题 - NexT.Mist