xcode8(Xcode 8新功能介绍)
一、新版本 xcode8 怎么查看对象里的值
可以开启Debuger,来追踪到具体的内容。在代码的断点处使用快捷键command+shift+Y,调出Debuger窗口,在左侧选择你的代码文件,右侧会列出该代码段的变量列表,选择你所需要追踪的数据,这里我找到了要查看的变量parameters,这是一个NSDictionary类型。点击右键,选择Print
Description to Console。
找到需要查看的变量名
然后打开Xcode的控制台(command+shift+R),就能看到详细的信息了。很简单吧,高手可以无视了,对于我这个Xcode菜鸟来说,真的很方便了。
数据显示在控制台了
Xcode的调试器为用户提供了一个GDB的界面,GDB是GNU组织的开放源代码调试器。您可以在Xcode的图形界面里做任何事情;但是,如果您需要您可以在命令行里使用GDB的命令。要在一个调试的任务里输入GDB命令行命令:
在工具栏里点击Console Drawer(控制台抽屉窗口)按钮打开控制台。您可以在控制台里查看Xcode调试器发送给GDB的命令,或者您可以直接在控制台里输入GDB命令。在控制台窗口里点击然后在gdb提示符后面输入命令。
Java代码
命令解释
break NUM在指定的行上设置断点。
bt显示所有的调用栈帧。该命令可用来显示函数的调用顺序。
clear删除设置在特定源文件、特定行上的断点。其用法为:clear FILENAME:NUM。
continue继续执行正在调试的程序。该命令用在程序由于处理信号或断点而
导致停止运行时。
display EXPR每次程序停止后显示表达式的值。表达式由程序定义的变量组成。
file FILE装载指定的可执行文件进行调试。
help NAME显示指定命令的帮助信息。
info break显示当前断点清单,包括到达断点处的次数等。
info files显示被调试文件的详细信息。
info func显示所有的函数名称。
info local显示当函数中的局部变量信息。
info prog显示被调试程序的执行状态。
info var显示所有的全局和静态变量名称。
kill终止正被调试的程序。
list显示源代码段。
make在不退出 gdb的情况下运行 make工具。
next在不单步执行进入其他函数的情况下,向前执行一行源代码。
print EXPR显示表达式 EXPR的值。
print-object打印一个对象
print(int) name打印一个类型
print-object [artist description]调用一个函数
set artist=@"test"设置变量值
whatis查看变理的数据类型
在Xcode中,Debug时,不能像eclipse,或VS那些集成开发那样,能直接查看变量的值。那怎么在调试的时候查看XCode的变量呢?有一些方法的。
1、新建一个Single View App
在viewDidLoad里添加些代码:
-(void)viewDidLoad
{
[super viewDidLoad];
NSDictionary*dic= [NSDictionary
dictionaryWithObjectsAndKeys:@"value1",@"key1",@"28",@"age",@"rongfzh",@"name",nil];
UILabel*label
=[[UILabel alloc] init];
label.frame=
CGRectMake(20,40,250,60);
label.text=
[dic objectForKey:@"name"];
[self.view addSubview:label];
}
在最后一行打上断点。
2、"po": print object命令打印出对象
Command+R调试运行,在 Debug Console上lldb上输入
po dic
回车,就可以把字典内容打印出来,
再打印label试试。
(lldb)po label
(UILabel*)$3= 0x06a8bdd0<UILabel: 0x6a8bdd0; frame=
(20 40; 250 60); text='rongfzh'; clipsToBounds= YES;
userInteractionEnabled= NO; layer=<CALayer: 0x6a8be90>>
label的信息也打印出来了。
3、print命令
print(char*)[[dic description] cString]
(char*)$4= 0x06d79760"{\n age= 28;\n key1= value1;\n name= rongfzh;\n}"
打印对象的retainCount,但对象被回收
(lldb) print(int)[label retainCount]
(int)$2= 1
GDB可以很方便的帮我们查看变量的值。
当执行到某断点时,在GDB窗口中使用po就可以查看变量.(po= print object)<wbr></wbr>
1)查看String或其它变量。
po变量名
2)查看某个Property。比如要查看item变量的name属性。
po [item name]<wbr><wbr>注意,po item.name是不工作的。</wbr></wbr>
3)查看数组
po [myArray objectAtIndex:index]
如果需查看内存数据:可以在输出窗口采用gdb命令:x/nfu<addr>
n表示要显示的内存单元的个数
-----------------------------------------
f表示显示方式,可取如下值:
x按十六进制格式显示变量
d按十进制格式显示变量
u按十进制格式显示无符号整型
o按八进制格式显示变量
t按二进制格式显示变量
a按十六进制格式显示变量
i指令地址格式
c按字符格式显示变量
f按浮点数格式显示变量
-----------------------------------------
u表示一个地址单元的长度:
b表示单字节
h表示双字节
w表示四字节
g表示八字节
二、Xcode8 利用appledoc 自动生成项目文档
最近写了一个小项目,想做完善点,就想到要有一个API的文档。知道有很多工具可以自动生成,但是具体一直没实现过,正好利用这个机会实验一把。
最终我决定使用appledoc生成
安装完验证一下版本OK了
这里说两种方法:
首先,文档中的注释只有符合规范,才能被appledoc认可
凡是以"///"、"/*"或"/!"开头的注释块,都算是appledoc注释。下面是实例:
注释块中,每一行的开头的空格和“*”字符多数情况都会被appledoc忽略。
连续的两行(即没有间隔空行)的注释,将被合并成一个段落,并忽略换行,就想html。
在注释块中,appledoc支持如下语法:Markdowm、HTML、HeaderDoc Tags。
编译完成的Docset默认会放在/Users/用户名/Library/Developer/Shared/Documentation/DocSets路径下
阅读在Xcode--> Window-->Documentation And API Reference里面找啦,快捷键就是command+shift+0
三、谁会用Xcode教教我
Xcode使用教程详细讲解是本文要介绍的内容,Xcode是一个款强大的IDE开发环境,就像你在写Windows程序时需要VS2005一样需要要Xcode为你写Mac程序提供环境。因此,如果你要成为Mac程序的开发者,灵活运用Xcode工具是你必须做的第一步。参考教程:
基于Xcode原型驱动的iOS应用设计
1)我们写程序时常常在源文件的头部添加copyright声明以及公司名称等等;而Xcode在创建文件时已经帮我们做了绝大部分工作,我们可能需要修改一下公司名称,因为xcode给不知道我们公司名称,它不可能预知一切,所以需要我们自己通过设置来告诉它。那么我们如何做到这一点呢?因为xcode中没有有关公司名称的占位符,所以我们必须通过terminal使用命令来设置。
在使用这个命令之前我们来看看xcode为我们提供的默认文件头部注释:
//// untitled.m// FilesOrganize//// Created by yan li on 8/29/09.// Copyright 2009 __MyCompanyName__. All rights reserved.//
在terminal中执行如下命令(打开terminal的热键是command+shift+U):
yan-lis-macbook-pro:~ yanli$ defaults write com.apple.Xcode PBXCustomTemplateMacroDefinitions'{"ORGANIZATIONNAME"="LiYanzhong";}'
注意上面的命令是在terminal命令行的同一行,而不是两行,这里是因为命令太长所导致。注意该命令执行时不会发出任何提示,即使你在命令中写错了参数名执行后也不会有任何提示,所以如果你执行该命令后发现你期待的效果没有出现,就请你检查一下你是否有拼写错误,执行该命令后我们重新启动xcode并重新创建文件,这个时候创建的文件头部注释,如下所见:
/** untitled.h* Untitled** Created by yan li on 8/29/09.* Copyright 2009 LiYanzhong. All rights reserved.**/
2)使用编辑器的技巧
a)如何关闭Xcode界面上的浏览器窗口?
点击在Xcode工具栏上的最右边个Editor图标,可以打开或关闭Xcode中查找项目文件的浏览器。快捷键是command+shift+E。
如果你的窗口上每个我所说的图标,则你需要自己手动将该图标放置到工具栏上。如何放呢?
激活Xcode工具,进入 View->Customize Toolbar...你会发现右很多没有在工具栏上出现的工具,你可以将想要随时可以用的工具拖到工具栏上就ok了。
b)如何对代码进行首行缩进?
第一种方法:选中需要缩进的代码,按住control键后单击光标,出现pop菜单,然后选择Re-indent selection。
第二种方法:选择需要调整的代码,同时按下command+[(左移动代码)或 command+](右移动代码)。
c)代码自动完成功能的强大应用
在Xcode中写代码,Xcode编辑器常常给出提示,如果给出的代码提示符合我们的要求,我们就可以按tab键选择所提示的代码。
如果提示代码不符合我们要求,我们可以按下esc键,将整个提示列表显示出来,找到我们需要的。在列表成员的最左边有个小方框,如果里面是f则对应的成员是函数;如果是m则是方法;如果是#则是#define命令;如果是E则是枚举;如果上C表示类。
如果我们不希望显示提示列表也能在列表成员间选择,我们可以使用快捷键control+.在选项之间循环;也可以使用shift+control+.在选项间反向循环。我们可以通过“代码自动完成功能”来查询一个类所提供了哪些API(接口方法)。方法是将类写在方法调用表达式中实现这一查询功能:
[NSDictionary+空格,然后按下esc键,将出现NSDictionary中提供的方法列表。注意:[NSDictonary后面必须要有空格,提示编译器类名称已经写完接下来要输入的是消息(即类中的方法名)。
将光标从一个占位符跳到下一个占位符的快捷键是:control+/
d)在修改一个项目的代码时,请先拍下快照。
File->Make Snapshot拍下项目的快照; File->Snapshots从快照中恢复。对应的快捷键:control+command+S;恢复没有快捷键,这样的好处就是--当代码修改烂了,可以恢复到最处状态。由此可见,这个功能只是在我们修改代码时提供帮助,不能真正的替代我们手动修改代码。
e)查找替换功能的使用:
Edit->Find->Find in Projects...
出现对话框
在Find栏输入要查找的字符;在Replace栏中输入要替换查找到的字符的字符;我们选择在工程中查找。如果我们不选择Ignore case则替换只发生在main()函数中。
该方法修改代码有很到的弊端--如果我只想修改某个函数内的car字符,但是这样修改会将函数外的所有我不许修改的car字符也改了;二是它不能修改类名和文件名;所以需要下面的方法来弥补它的第一不足。
f)该方法可以解决上面修改代码的第一个缺陷,可以将代码的修改控制在一个函数之内,但是它仍然不能修改类和文件名字。使用这个方法前,必须用光标选择一个需要修改的局部变量字符或函数参数,注意必须是字符,如果你选择的是类名字符则不会出现菜单项“ Edit all in Scope".
Edit->Edit all in Scope,然后在你输入的时候,所有出现该字符的地方一起被输入的字符替换掉。
g)下面讲解一种可以修改类名和文件名的方法。
是用该方法可以改变类名字和文件名;先选择一个需要被修改的类名,如Engine;将光标插了到该字符中,选择Edit->Refactor...打开如下的对话框:
你如果需要将Car修也可以。
按下 preview按钮,界面如下所见,Xcode自动给处了我们分析报告,有什么文件将被修改,每个文件有几处会被修改等信息。从下面图可以看到,类名以及类的文件名都被修改了。
h)在Cocoa文本域常用的快捷键:
使用如下的快捷键我们就可以在小范围呢移动光标二不让手不离开键盘了。
control+F:在同一行上将光标向右移动
control+B:在同一行上将光标向左移动
control+P:将光标移动到前一行
control+N:将光标移动到后一行
control+A:将光标移动到本行的行首
control+N:将光标移动到本行的行尾
control+T:将光标两边的字符对调
control+D:删除光标右边的字符
control+k:删除光标所在行光标后面的代码,便于你重写行尾代码
control+ L:将光标插点置于窗口正中。
i)如何在Xcode中搜索一个文件?
在一个源文件如何打开一个由#import导入的头文件呢?
选中该头文件(可以不包含.h),然后通过File->Open Quickly...打开该被选中的文件。
在没有选中任何文本时,选择Open Quickly...则打开一个简单的查询窗口,查找工程中的文件。快捷键command+shift+D
如果你当前在看一个.m文件,这个时候你突然想要看看与该文件对应的.h文件,我们可以使用command+ option+向上箭头组合键,打开配套文件。