zoukankan      html  css  js  c++  java
  • [技术翻译] 构建现代化的Objective-C (下)

    我的技术博客经常被流氓网站恶意爬取转载。请移步原文:http://www.cnblogs.com/hamhog/p/3563880.html,享受整齐的排版、有效的链接、正确的代码缩进、更好的阅读体验。

    本文翻译自:Structuring Modern Objective-C 译者:Ley戴仓薯

    接上

    为 #import 语句分组

    这一点我们都时不时遇到过。有多少次你写了一个(也许是)长长的 implementation 文件,十几、二十个 #import 语句随意堆在开头?唉呀唉呀唉呀。没关系!我们来帮忙解决。

    #import 的顺序是否重要尚存争议,因此我们先不说它。确定重要的是你要为它们分组。然后为每一组添加注释。

    // Frameworks
    #import <QuartzCore data-preserve-html-node="true"/QuartzCore.h>
    
    // Views
    #import "ASHButton.h"
    #import "ASHUserView.h"
    
    // View Controllers
    #import "ASHOtherViewController.h"
    #import "ASHThisViewController.h"

    不要等到一团乱麻再去收拾——现在就开始整理!以后再往里添加就很轻松了,也让你的代码保持整洁。

    不要用 #define 来定义常量

    此话一出,定是一片哗然。但是常量的关键在于,嗯,它们是。名称不变,值也不变。当你 #define 一个常量,它会定义在其他每一个编译器检查到的文件里,直到遇到#undef(如果有的话)。呃。这感觉可一点都不像常量,倒像是全局变量之类的东西。

    不要这样做。

    取而代之的做法是:将常量在头文件里声明为 extern 变量,同时在相应的 implementation 文件中定义。

    在头文件中:

    extern const CGFloat ASHHeaderViewHeight;

    然后,在 implementation 中,

    const CGFloat ASHHeaderViewHeight = 44.0f;

    现在你的常量可以对任何需要的人可见(他们只需 #import 头文件),但对程序的其他部分都不可见。它也不可能被 #undef ,在别处再重新 define (明显的代码坏味道)。

    注:Michael 指出,严格地说,我们应该用 FOUNDATION_EXPORT 来代替 extern 。

    合理地命名常量

    我不在乎你给常量加的前缀是 'k' 、是类名还是一个随便什么前缀,但是要确保一致。并且要有描述性。否则,随着你的代码库越来越大,早晚会产生命名冲突的问题。这一点相信我,不会有错。

    本文翻译自:Structuring Modern Objective-C 译者:Ley戴仓薯

  • 相关阅读:
    一个例子学懂搜索引擎(lucene)
    在vs2008中设置jquery智能提示
    40个有用的jQuery技术和教程
    构建高性能ASP.NET站点之三 细节决定成败
    了解搜索引擎技术
    使用微软分布式缓存服务Velocity Part 2
    【转】构建高性能ASP.NET站点 开篇
    构建高性能ASP.NET站点之二 优化HTTP请求(前端)
    笔记:深入理解JVM 第4章 JVM性能监控与故障处理工具
    javascript 继承
  • 原文地址:https://www.cnblogs.com/hamhog/p/3563880.html
Copyright © 2011-2022 走看看