如果你是一位开发人员在开发过程中会发现有些代码无论是在同一个工程中还是在不同工程中使用率会很高,有经验的人会直接封装在一个类里,或者写成一个宏定义或者把这些代码收集起来,下次直接使用,或者放到xcode的代码片库里,直接使用, 从而提高开发效率;

1. 将常用代码片段封装成一个类里

当一个代码片在一个或多个工程之中经常出现时,把他封装在一个类里面,在使用时候直接传参即可实现对于功能,或者直接把这类放到另一个工程中同样使用;

使用UIAlertView举例

创建一个XF_UIKit类,对于声明文件和实现文件为

//
// XF_UIKit.h
// Demo
//
// Created by DolBy on 13-6-17.
// Copyright (c) 2013年 新风作浪. All rights reserved.
// #import <Foundation/Foundation.h> @interface XF_UIKit : NSObject
+(void)showAlert:(NSString *)title withMessage:(NSString *)message witchCancelButtonTitle:(NSString *)cancelButtonTitle otherButtonTitles:(NSString *)otherButtonTitles, ... NS_REQUIRES_NIL_TERMINATION;
@end
//
// XF_UIKit.m
// Demo
//
// Created by DolBy on 13-6-17.
// Copyright (c) 2013年 新风作浪. All rights reserved.
// #import "XF_UIKit.h" @implementation XF_UIKit
+(void)showAlert:(NSString *)title withMessage:(NSString *)message witchCancelButtonTitle:(NSString *)cancelButtonTitle otherButtonTitles:(NSString *)otherButtonTitles, ... NS_REQUIRES_NIL_TERMINATION
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title message:message delegate:self cancelButtonTitle:cancelButtonTitle otherButtonTitles:otherButtonTitles, nil];
[alert show];
[alert release];
}
@end

使用的时候引入头文件直接调用类方法

- (void)viewDidLoad
{
[super viewDidLoad];
[XF_UIKit showAlert:@"警告" withMessage:@"新风作浪的测试 " witchCancelButtonTitle:@"OK" otherButtonTitles: nil]; // Do any additional setup after loading the view, typically from a nib.
}

2.使用宏

iOS开发中那些高效常用的宏一文例举了宏的使用,此处不再赘述;

3.使用Xcode自带代码片段库

在属性面板下面有一栏库面板选择条,有一项Code Snippet Library有iOS下OS X   和 User(用户自定义的)代码片段存储

(1)在这些库里有系统自带的代码片段,使用的时候直接拖到工程里,填上参数即可使用。

(2)用户自定义代码块,这也是本文讲解的重点。例如:

做过开发的都知道使用表示图单元格比较频繁,经常频繁写他们的delegate方法,如果把它们收集起来

#pragma mark -
#pragma mark UITableViewDataSource and UITableViewDelegate Methods -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{ return 1;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ return 10;
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
return cell;
}

这是绘制一个基本表示图单元必须实现的协议方法,全选这些代码拖到Code Snippet Library里面,如下图

然后会弹出一个编辑框,然后进行一个简单编辑,title表示你这个代码块标题,Summary 对这段代码片的简单介绍,Completion Shortcut表示一个快捷键,在我们工程中只要输入快捷键就可以显示整段代码片;

相应设置

把参数放在两个#号之间,比如 #参数#

编辑完毕选择Done,在User下即可看到TbaleView代码块

在使用的时候两种方式

①直接把这个代码块拖到工程中;

②在工程里面输入自己设置的快件建代码,比如刚刚设置的XFTableView,真个代码块全部出现;

在资源库(Libary)/Developer/Xcode/UserData/CodeSnippets下存放的就是你自定义的代码片段,如果重装Xcode记得备份哦!

原创博客欢迎转载分享,请注明出处http://blog.csdn.net/duxinfeng2010

iOS开发技巧 -- 复用代码片段的更多相关文章

  1. iOS开发技巧系列---详解KVC(我告诉你KVC的一切)

    KVC(Key-value coding)键值编码,单看这个名字可能不太好理解.其实翻译一下就很简单了,就是指iOS的开发中,可以允许开发者通过Key名直接访问对象的属性,或者给对象的属性赋值.而不需 ...

  2. 【转】几点 iOS 开发技巧

    [译] 几点 iOS 开发技巧 原文:iOS Programming Architecture and Design Guidelines 原文来自破船的分享 原文作者是开发界中知晓度相当高的 Mug ...

  3. iOS开发关于Block代码错误

    本文永久地址为http://www.cnblogs.com/ChenYilong/p/4052362.html ,转载请注明出处. iOS开发关于Block代码错误 Incompatible bloc ...

  4. 【好程序员笔记分享】——iOS开发之纯代码键盘退出

    -iOS培训,iOS学习-------型技术博客.期待与您交流!------------ iOS开发之纯代码键盘退出(非常简单)     iOS开发之纯代码键盘退出 前面说到了好几次关于键盘退出的,但 ...

  5. js/jquery/html前端开发常用到代码片段

    1.IE条件注释 条件注释简介 IE中的条件注释(Conditional comments)对IE的版本和IE非IE有优秀的区分能力,是WEB设计中常用的hack方法.条件注释只能用于IE5以上,IE ...

  6. jQuery Mobile高手必备的十大技巧和代码片段

    与任何新技术一样,常常难就难在如何开始入手. 有鉴于此,我们整理出了与jQuery Mobile库有关的我认为最便利的一些技巧.方法和代码片段. 由于本文不是旨在全面介绍使用jQuery Mobile ...

  7. 几点iOS开发技巧

    转自I'm Allen的博客   原文:iOS Programming Architecture and Design Guidelines   原文来自破船的分享   原文作者是开发界中知晓度相当高 ...

  8. iOS开发技巧

    一.寻找最近公共View 我们将一个路径中的所有点先放进 NSSet 中.因为 NSSet 的内部实现是一个 hash 表,所以查找元素的时间复杂度变成了 O(1),我们一共有 N 个节点,所以总时间 ...

  9. iOS开发技巧系列---使用链式编程和Block来实现UIAlertView

    UIAlertView是iOS开发过程中最常用的控件之一,是提醒用户做出选择最主要的工具.在iOS8及后来的系统中,苹果更推荐使用UIAlertController来代替UIAlertView.所以本 ...

随机推荐

  1. iOS UIWebView 之 UIProgressView

    之前做等待跳转都是用UIActivityIndicatorView ,后来做webView 加载页面的时候,发现了一个特别好用又超级炫酷的加载提示NJKWebViewProgress,作者巧妙的通过计 ...

  2. 高性能的JavaScript--加载和执行[转]

    写在前面 JavaScript在浏览器中的性能,可认为是开发者所要面对的最重要的可用性的问题,此问题因JavaScript的阻塞特征而复杂,也就是说JavaScript运行时其他的事情不能被浏览器处理 ...

  3. pay包注释(一)

    lovep2c项目pay模块注释: views.py: def create_user_no(email):    return md5(email).hexdigest().upper() + &q ...

  4. UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现

    UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现 类与类图 1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性.操作.关系的对象集合的总称. 2) 在系统中, ...

  5. JAVA平台上的网络爬虫脚本语言 CrawlScript

    JAVA平台上的网络爬虫脚本语言 CrawlScript 网络爬虫即自动获取网页信息的一种程序,有很多JAVA.C++的网络爬虫类库,但是在这些类库的基础上开发十分繁琐,需要大量的代码才可以完成一 个 ...

  6. 基于visual Studio2013解决C语言竞赛题之0505选数

     题目

  7. 使用webservice实现App与服务器端数据交互

    What? webservice曾经认为是解决异构系统间整合的最佳解决方案,不依赖于第三方任何系统的支持(不需要部署RDBMS服务器),大家只需要按照官方的规范,即可完成相互之间的数据交互. Why? ...

  8. 自己用js写的两个日历控件

    前一阵写了两个日历控件,做了简单的封装,发出来共朋友们参考. 第一个日历控件,条状的日历. (使用方法:调用initBarTime(id,evn),第一个参数是要渲染div的id,第二个参数是点击日期 ...

  9. 02-UIKit控件、MVC

    目录: 一.控件使用 二.动态类型和静态类型 三.MVC 四.UIAlertView对话框 回到顶部 一.控件使用 1 事件源,事件处理方法有一个参数传进来,那个参数就是触发这个事件的时间源. UIS ...

  10. Linux C++ 开发简介(包括Linux守护线程)

    阅读目录 简介 操作系统 编辑器 编译器 构建系统 调试 IDE 可执行程序.动态库.静态库 服务 Windows服务简介 创建Windows服务 注册Windows服务 管理Windows服务 Li ...