我的开发环境
- 操作系统:OS X EI Capitan 10.11.1 (15B42)
- 电脑型号:MacBook Pro(Retina 显示屏,15 英寸,2013 年末)
- 处理器:2.3 GHz Intel Core i7
- 内存:16 GB 1600 MHz DDR3
- Xcode:7.1 (7B91b)
开始开发
如果没有苹果机的需要通过虚拟机安装OS X或者使用黑苹果,具体怎么弄的百度一下一大堆,我就不在这里说了。开发环境的搭建与安装也不说了,直入主题吧。
在开发过程中,如果想知道程序运行到某一个方法了,或者是想知道运行时的某个值是多少,一般有两种方法:1、Debug调试 2、日志信息输出。
记得以前刚开始学Java的时候,老是喜欢使用控制台打印变量。
System.out.println("asdfasdf");
现在切换到Swift,一样可以在控制台输出变量。
println("asdfasdf")
上面的swift代码行末尾没有分号,这个不是我写错了,这点有点像Python。swift语言在设计的时候借鉴过其他很多语言的有点,其中包括脚本语言。所以,有点像也不奇怪。
言归正传,这种方式的变量记录也就用在自己玩玩的时候,如果真的是认真的去做东西,这么记录肯定是不行的。
假设你做了一个项目,放到AppStore上面去了,下载的人还挺多的。某天用户A告诉你说某某功能不能用了,这时候就查看NSLog记录的日志,然后才能根据日志中输出的关键变量来大概分析产生问题的原因。
说了这么多,先看下NSLog的定义:
func NSLog(format:String,args:CVarArg)
该函数由格式化字符串和参数组成。
其实这个函数本身没啥好说的,只是想说明一下日志的重要性。
使用也很简单,写个小例子吧,我也是现学现用。
import Foundation
var str = "Hello,playground"
print(str)
NSLog(str)
for(var i=0;i<10;i++){
NSLog("MySwift%d",i)
}
输出如下:
Hello,playground
2015-11-07 16:40:07.601 MyPlayground[77233:11735691] Hello,playground
2015-11-07 16:40:07.601 MyPlayground[77233:11735691] MySwift0
2015-11-07 16:40:07.601 MyPlayground[77233:11735691] MySwift1
2015-11-07 16:40:07.602 MyPlayground[77233:11735691] MySwift2
2015-11-07 16:40:07.602 MyPlayground[77233:11735691] MySwift3
2015-11-07 16:40:07.602 MyPlayground[77233:11735691] MySwift4
2015-11-07 16:40:07.602 MyPlayground[77233:11735691] MySwift5
2015-11-07 16:40:07.602 MyPlayground[77233:11735691] MySwift6
2015-11-07 16:40:07.602 MyPlayground[77233:11735691] MySwift7
2015-11-07 16:40:07.602 MyPlayground[77233:11735691] MySwift8
2015-11-07 16:40:07.603 MyPlayground[77233:11735691] MySwift9
不难看出,println函数和NSLog输出的区别。NSLog可以打印出当前输出时间与调用该日志函数的位置。
NSLog("MySwift%d",i)
注意一下上面这段代码。
字符串里面有一个占位符或者叫指示符『%d』,他代表的是数字,这种写法我也喜欢把它叫做字符串格式化。
占位符很多,如果不经常使用也记不下来,现在记录一下,方便以后查询。
指示符 | 描述 |
---|---|
%@ | 对象,String、Array、Dictionary等都是对象 |
%% | 『%』字符 |
%d,%D | 带符号的32位整数 |
%u,%U | 无符号的32位整数 |
%x,%X | 无符号的32位整数,按照16进制输出 |
%o,%O | 无符号的32位整数,按照8进制输出 |
%f | 64位浮点数 |
%e,%E | 64位浮点数,按照科学记数法输出 |
%c | 八位无符号字符 |
%C | 16位Unicode字符 |
%a,%A | 64位浮点数,按照科学记数法输出 |
%F | 64位浮点数,按照16进制输出 |
NSLog在什么时候使用?这个问题其实没有一个绝对的答案。可以用在关键的变量记录上,也可以用在是否进入关键函数体的记录上。具体使用得看情况。
NSLog基本上算是介绍完了,日志记录是编程必须要掌握并且合理的利用起来的一门技能。
我准备在学习swift的过程中时刻记录,这篇博文就是这组swift学习系列博文的第一篇博文,写的有点拖沓。以后我的风格就是简洁,这个系列的博文就像是字典。以后忘记了,随时能过来查,而且还没那么多废话。
今天就到这,我得开始学swift基本语法了,学完了就来记录。