一、搜索东西

有时候类很多,方法很多,想改某类时,还要打开各自文件夹去点进去,感觉很麻烦费时间。

如下图:用此搜索可以搜到此类,从而进行修改。

有时候想在类中找某个方法或者属性,自已一点一点找很费劲,请看下图:

此搜索是在类中按command+F,搜索某个属性和方法时比较方便。

跳到某个方法,也可以利用:(点击如下图画红线的地方)也是比较方法,比你自己一点一点找要快!

以上搜索是方便开发的时候!接下来是targets和project中的搜索:

题外话,有一同事,问我在哪里加-fno-objc-arc或者-f-objc-arc有哪里添加;(有关此知识请参考:

http://blog.csdn.net/rhljiayou/article/details/8103939,此博客有讲解)。

我告诉了他在targets下的Buid Phases下的Compile Sources。结果就是要添加的文件在时面顺序都打乱了,然后他就不知道怎么办了,因为文件好多,总不能一个一个靠眼睛去找吧,然后我就告诉他可以利用搜索如下图(这样不就方便了许多吗?):

看来搜索在我们开发中挺重要的,所以我希望大家善于利用搜索来解决问题。同样说一个xcode以外的搜索:

Control+F(打开Spotlight):Spotilight会帮助您 在电脑上快速查找东西。Spotlight位于屏幕的右上角。此工具非常之强大!

二、常用快捷方式

command+R运行

command+B编译

command+shift+k clean清除项目

command+i找开检测工具Profile

编辑代码时用到的快捷键(Control+):

Control +F向右边移动

Control +B向左边移动

Control +P移动到前一行

Control +N移动到下一行

Control + A移动到首行

Control +E移动到行尾

Control +D删除光标右边的字符

Control +K删除光标所在行中的右边的代码

Control +L将插入点置于窗口正中

用Xcode会有很多操作方式来打开某样东西,下面介绍三种方法不同方式打开,

以打开测试泄漏工具为例子,介绍三种方法:

1、直接打开菜单

2、command+i(快捷键)(最快的方式)

3、长按运行键,会弹出下拉菜单,选择第三个就可以打开了

所以不同的方式都可以打开相同的东西,找到自己最愉快的方式使用。

三、介绍几个其他方便开发的工具

善用工具,可以大大提高效率

     

很好用的两个工具

左边:只需要1024的图,可以生成任意的icon。包括iphone pad,所有需要的尺寸。用法,大家下载来,琢磨一下估计就会了。

右面:强大的批量文件改名,支持通配符。很方便的工具,比如要批量追加@2x,此工具一下搞定!

下载链接http://download.csdn.net/detail/rhljiayou/6767345
(仅供技术交流,24小时内删除)

这俩 对工作来说是相当实用的工具。

=============================================

1、引用的重要性

当我有文件需要添加到项目时你是如何做的?

第一种:直接拉就像这样

第二种:Add Files

随后它会弹出此框让你选择:

首先说 Copy items into destination group's folder (if needed):

把文件复制到项目中(如果需要),

此项很重要,如果勾选上,表示我要把我添加的文件复制到项目中去,那么你会在项目中看到此文件。

如果把勾选去掉,那么你拉进来以后,也仅仅是一个引用的文件而已,实际上没有在项目中,他只是对这个文件做了一个引用。这样当你把项目交给另外一个托管时,编译程序发现通不过,发现此文件找不到,是红色状态:

缺少这个文件,因为这个引用的路径在别人的机子上没有这个文件,自然也就找不到,自然是编译通不过的。

(别看此小问题,大部分人还是会犯的,小问题也有大麻烦。)

然后就是:

前者:Create groups for any added folders  : 给任一你添加的文件创建一个组groups

后者:Create folder references for any added folders  :给任一你添加的文件创建一个文件夹folder

当你向项目中添加一个文件夹时

两的区别是:前者的文件夹是黄色的;后者的文件夹是蓝色的

如果有一个info.h文件需要引用:前者直接导入import "info.h"就可能使用;后者你需要import "文件夹名字/info.h"才可能使用,否则编译时找不到文件info.h。

2、一切要先clean再build

不知道大家有没有遇到过这些问题:

(1)改了某个文件后编译无变化 (2)把图片删了后结果运行界面上还是有图片(3)莫名其妙的报错……等等类似的问题

当你第一次build的时候,所有的代码转成目标代码,当你做改变一个文件并且改动不大时,也不用先clean一下。

然而有的时候你频繁的添加文件,删除文件,以及程序老crash的时候,就会容易出现问题。

因为build只编译被改变了的文件,当你删除或重命名文件的时候,它不删除已经编译的文件,以便程序可以正常工作,但是如果你重新编译会看到错误,比如新添加的文件不被引用,原来删除的文件也没删除。那么就不得不把原来编译过的目标文件删除clean然后再重新编译build。

所以保证你的程序没问题时,先clean再build吧!

3、xcode分组之美(不要搞的项目乱齐八糟的)

前些天别人给了我一个项目,已经做完了,就是有些bug需要修改,扔给我以后找xcodeproj找了半天,一打开一看,我彻底的崩溃了,乱齐八糟的哪都不知道是哪儿,让我如何下手改,上图:

这只是一部分,下面还有一大堆文件。这真是看一眼就蒙了,这都是些什么,一点也看不懂,而且找个图片也找不到,因为图片都是以这样全名的,如下图:

这些个名字都是些什么。

也不知道把美工给的一些图的名字改改,就直接拿来用了。谁知道那些图片对应的毛线啊。

ok,吐嘈完毕,接下来,介绍一下各人认为比较好一些方法来使项目有条理。

(1)首先给项目起名字的时候不要用中文,最好用英文,如果英文不好的话,用拼音代替也是可以的。

(2)创建完项目可以按模块来建组分组,凡是项目都是可以分模块儿,自己在脑中规划一下分组,分组的名字也是好跟模块对应,比如我有三个模块是首页,工具,个人中心;那么我会三个分组是home,tools,center,然后三个分组中对应着是他们的代码。

(3)写项目肯定会引用第三方类库,那么就把所有用到第三方类库的文件夹也都放到统一的一个组里,表示这里只放第三方的文件。

(4)至于资源image图片分好文件夹也都放到一个images组里面。并且图片的名字也要对应于模块中的名字,这样找起来方便,比如home里的图片,我会这样起home_back.png等等类似。因为如果专业性比较强的美工他会给你起好名字,对于每个模块都会起好,这样你直接拿来用没什么问题,如果是专业性不强的美工,他直接给你这样的文件:1.png,2.png,3.png你不会就直接拖到项目中去了吧。一是美工平时可能忙,也是为了图省事儿,随便一起名字。所以美工给了你切图,不要直接使用,要命名好再用。

(5)然后所有的model放到一块儿,表示这一组里放的全是模型,找某个模型修改起来也方便。

ok,不管你是一个人写项目还是团队写项目,都要把项目管理好,以备后来之患,让别人再看你的项目时,一目了然,多好啊。

4、打断点看错误信息

当项目出问题的时候,你会如何查看?

我一般是打断点加NSLog打印信息。

顺便再看:

这非常之有用,这也能反应出你找问题的能力,以及解决问题的能力!!!

如有问题和意见,进群讨论113820038或者留言。

转载请注明:http://blog.csdn.net/rhljiayou

xcode 使用通用总结的更多相关文章

  1. iOS面试题汇总

    摘要:1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? 答: Object-c的类不可以多重继承;可以实现多个接口,通 ...

  2. 最全的iOS面试题及答案-转载

    1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? 答: Object-c的类不可以多重继承:可以实现多个接口,通过实现 ...

  3. 李洪强iOS经典面试题124

    1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? 答: Object-c的类不可以多重继承;可以实现多个接口,通过实现 ...

  4. 超全!iOS 面试题汇总

    之前看了很多面试题,感觉要不是不够就是过于冗余,于是我将网上的一些面试题进行了删减和重排,现在分享给大家.(题目来源于网络,侵删) 1. Object-c的类可以多重继承么?可以实现多个接口么?Cat ...

  5. iOS面试题及答案2015.6.7

    iOS面试题及答案     1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? 答: Object-c的类不可以多重继承 ...

  6. oc常见误区

    1.同步请求可以从因特网请求数据,一旦发送同步请求,程序将停止用户交互,直至服务器返回数据完成,才可以进行下一步操作, 2.异步请求不会阻塞主线程,而会建立一个新的线程来操作,用户发出异步请求后,依然 ...

  7. iOS开发——面试指导

    iOS面试指导 一 经过本人最近的面试和对面试资料的一些汇总,准备记录这些面试题,以便ios开发工程师找工作复习之用,本人希望有面试经验的同学能和我同时完成这个模块,先出面试题,然后会放出答案. 1. ...

  8. iOS开发——面试笔试精华(三)

    面试笔试精华(三) 1.        When to use NSMutableArray and when to use NSArray? 什么时候使用NSMutableArray,什么时候使用N ...

  9. Objective-C基础知识点总结

    一.#import 和 #include 的区别,@class代表什么?@class 和 #import 的区别?#import<> 和 #import""的区别 答: ...

随机推荐

  1. 使chrome支持跨域访问

    在做后台开发的时候,使用了iframe框架.后台主页面如下: <div style="width:185px; overflow: hidden;" id="wes ...

  2. Python之路【第八篇】:堡垒机实例以及数据库操作

    Python之路[第八篇]:堡垒机实例以及数据库操作   堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient ...

  3. CentOS6.5下挂载NTFS格式的文件系统

    下载对应CentOS版本的rpmforge,下载地址:http://pkgs.repoforge.org/rpmforge-release/ 安装rpmforge,输入命令:# rpm -ivh rp ...

  4. [原]hdu2045 不容易系列三——LELE的RPG难题 (递推方程)

    本文出自:blog.csdn.net/svitter 原题:http://acm.hdu.edu.cn/showproblem.php?pid=2045 题意:中文不用我说了吧. 这个题目的关键就在于 ...

  5. C++ sstream 中处理字符串

    C++引入ostringstream.istringstream.stringstream这三个类,要使用他们创建对象就必须包含<sstream>这个头文件. istringstream的 ...

  6. Winform下WebBrowser 编辑模式 监听键盘按键事件

    最近使用 WebBrowser 做了个富文本编辑器(其实网上有很多很多).例如下面这个玩意(不要在意界面神马的) WebBrowser在编辑模式下可以有一些HTML标签的功能,改变字体大小颜色等等等. ...

  7. Outlook 2007无法打开链接"由于本机的限制 该操作已被取消"

    编写人:CC阿爸 2014-2-17 近来在日常维护中,经常性的遇到用户在outlook中打开链接,提示[由于本机的限制,该操作已被取消],第一次的在网上搜索到解决办法后, 第二次再处理时,又没能记住 ...

  8. Silverlight 读取配置文件

    1.ExtranetLink.xml <?xml version="1.0" encoding="utf-8" ?> <menus> & ...

  9. LevelDB系列之SSTable(Sorted Strings Table)文件

    SSTable是Bigtable中至关重要的一块,对于LevelDb来说也是如此,对LevelDb的SSTable实现细节的了解也有助于了解Bigtable中一些实现细节. 本节内容主要讲述SSTab ...

  10. js数组的内部实现,迭代器,生成器和内包

    js内部实现 在js以外的很多语言中,数组将会隐式占用一段连续的内存空间.这种隐式的内部实现,使得高效的内存使用及高速的元素方法称为可能,而 在javascript中,数组实体是一个对象,所以通常的实 ...