一、搜索东西

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

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

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

此搜索是在类中按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. 003Linux网络配置

    基于VMware中的Linux系统: 1.VMware提供了三种网络工作模式: (1)bridged(桥接模式) 桥接模式,顾名思义,得有桥,谁充当桥呢?当然是主机,安装了虚拟机的主机,充当的是虚拟机 ...

  2. mysql中union与union all的区别

    当查询表结构完全相同的多张表的数据时: 1.当查询条件完全相同且不包括主键,此时用union查询会过滤掉查询出的重复的记录,及漏查记录:使用union all进行查询,则会查出所有的符合条件的记录,保 ...

  3. 华为OJ-合唱队

    华为OJ-初级题-合唱队 思路与分析 本题可以用DP的方法,分别从正向和逆向的两个方向求,该数组即186 186 150 200 160 130 197 200的上升对大序列.正向为[1, 1, 1, ...

  4. POJ C程序设计进阶 编程题#1:含k个3的数

    编程题#1:含k个3的数 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 输 ...

  5. sqlserver 保留小数方法

    1. 使用 Round() 函数,如 Round(@num,2)  参数 2 表示 保留两位有效数字. 2. 更好的方法是使用 Convert(decimal(18,2),@num) 实现转换,dec ...

  6. Html5元素及基本语法

    HTML标签开始标签(opening tag):开放标签结束标签(closing tag):闭合标签 元素定义:HTML元素指的是从开始标签到结束标签的代码(元素以开始标签为起始以借宿标签终止)元素的 ...

  7. Service(一)----->简单计算

    xml: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:t ...

  8. MVC中的奇葩错误,参数转对象

    在使用MVC中遇到一个神奇的错误,特此记录(我在用MVC4时遇到) 上面两张图就是一个变量名进行了修改,其他不变!form里面的参数也是一样的!喜欢尝试的可以尝试一下! 我的变量使用action时出现 ...

  9. Web Design:欧美人形剪影的404界面

    项目需求,必须得写个404界面,比较愁,因为网站属于那种电商+艺术品拍卖的网站,404界面不太好设计 很多时候网站直接代码报错输出404,不过设计过的404也有好处,比如改进用户体验.增强互动性之类的 ...

  10. Python input()

    在Python语言中,我们经常需要与用户实现交互,下面是一个小实例 # -*- coding:UTF-8 -*- #获取输入参数,并将输入的值存储到txt文件中 String1 = input(&qu ...