1: 实现 description 方法

NSlog 在输出自定义的类时, 只输出了 类名 和 对象的内存地址. 要想输出更为有用的信息也很简单, 只需要覆写 description 方法并将描述此对象的字符串 返回即可.

- (NSString*)description{

return     xxxxxxx;

}

有个简单的办法, 可以在 description 中输出很多互不相同的信息, 那就是借助 NSDictionary 类的 description 方法.

- (NSString *)description{

return  [NSString stringWithFormat:@"%@",@{@"title: _title, @"age":@(_age)"}];

}

NSObject 协议中还有一个方法  debugDescription , 此方法的用意与 description 非常相似, 二者的区别在于,  debugDescription 方法是开发者在调试器中以控制台命令 打印对象时才调用的.  在 NSObject  的默认实现中, 此方法只是直接调用了 description

使用方法, 我们在创建实例所用的代码后面插入断点, 然后通过调试器, 使其暂停于此, 当程序运行到断点时, 开发者就可以向调试器控制台中输入命令了,

'po' 命令, 可以完成对象打印的 (prient-object) 工作.

同样, 你也可以覆写 debugDescription 的方法, 使其更合你意.

总结:

实现 description 方法返回一个有意义的字符串, 用以描述该实例

若想在调试时打印出更详细的对象描述, 则应实现 debugDescription 方法,  'po' 命令, 打印对象

2: 尽量使用不可变对象

设计类的时候, 应充分运用属性来封装数据. 而在使用属性时, 则可将其生命为 '只读'. 默认情况下, 属性是 '可读可写的', 这样设计出来的类都是 '可变的'. 不过, 一般情况下,我们要建模的数据未必需要改变.

具体到编程实践中,则尽量把对外公布出来的属性设为只读, 而且在只有却又必要的时候对外公布.

总结:

尽量创建不可变的对象

3: 使用清晰而协调的命名方式

尽量使用  '驼峰式大小写命名法'

方法命名 长度要适中, 表达清晰, 且言简意赅.

给方法命名时的注意事项

(1) 如果方法的返回值是新创建的, 那么方法名的首个词应是返回值的类型, 除非前面还有修饰语.属性的存取方法不遵循这种命名方式.  属性的存取方法应该按照其对应的属性来命名.

(2) 应该把表示参数类型的名词放在参数前面.

(3) 如果方法要在当前对象上执行操作. 那么就应该 包含动词, 若执行操作时还需要参数. 则应该在动词后面加上 一个 或多个名词.

(4) 不要使用 str 这样的简称, 而应该使用 String 这样的全称.

(5) Boolen  属性应加上 is 前缀, 如果某方法返回非属性的 Boolean 值, 那么应该根据其功能, 选用 has 或  is 当前缀.

(5) 将 get 这个前缀 留给那些 借由 ' 输出参数' 来保存返回值的方法.

类与协议的命名

应该为类与协议的名称加上前缀, 以避免命名空间冲突. 而且应该像给方法起名时那样吧词句组织好, 使其从左至右读起来较为通顺.

类 与 协议的命名惯例, 命名方式应该协调一致.

总结:

起名时应遵循从标准的 OC 命名规范

方法名要言简意赅, 从左至右读起来顺畅

方法名里不要使用缩略后的类型名称

为私有方法命名规范

以 'p_' 开头命名私有方法, 这样容易区分

不要但用一个下划线 '_' 做私有方法的前缀, 因为这种方法是预留给苹果公司的.

iOS -- Effective Objective-C 阅读笔记 (7)的更多相关文章

  1. iOS Testing with Xcode 阅读笔记

    官方文档直通车 Performance Testing A baseline is a combination of the average time performance in ten runs ...

  2. Effective Java, 3e阅读笔记一

    引言 本书的目标是帮助读者更加有效地使用Java编程语言及其基本类库,适用于任何具有实际Java工作经验的程序员. 本书一共90个条目,12章,每个条目讨论一条规则,这些规则反映了最有经验的优秀程序员 ...

  3. QCon 2015 阅读笔记 - 其他精选主题

    QCon 2015阅读笔记 QCon 2015 阅读笔记 - 移动开发最佳实践 QCon 2015 阅读笔记 - 团队建设 QCon 2015 阅读笔记 - 其他精选主题 以前分享过两个主题:移动开发 ...

  4. QCon 2015 阅读笔记 - 移动开发最佳实践

    所有ppt下载地址:http://pan.baidu.com/s/1mg9o4TM 下面是移动开发实践部分的阅读笔记. 移动开发网络性能优化实践 - 陈浩然 (携程) 携程是非常标准的移动App架构, ...

  5. SDL源码阅读笔记(1) 基本模块

    write by 九天雁翎(JTianLing) -- blog.csdn.net/vagrxie 前言 对于大牛来说,写关于阅读源码的文章都会叫源码剖析或者深入浅出啥的,对于我,自己阅读阅读源码,写 ...

  6. 《STL源代码剖析》---stl_deque.h阅读笔记(2)

    看完,<STL源代码剖析>---stl_deque.h阅读笔记(1)后.再看代码: G++ 2.91.57,cygnus\cygwin-b20\include\g++\stl_deque. ...

  7. 阅读笔记 1 火球 UML大战需求分析

    伴随着七天国庆的结束,紧张的学习生活也开始了,首先声明,阅读笔记随着我不断地阅读进度会慢慢更新,而不是一次性的写完,所以会重复的编辑.对于我选的这本   <火球 UML大战需求分析>,首先 ...

  8. [阅读笔记]Software optimization resources

    http://www.agner.org/optimize/#manuals 阅读笔记Optimizing software in C++   7. The efficiency of differe ...

  9. 《uml大战需求分析》阅读笔记05

    <uml大战需求分析>阅读笔记05 这次我主要阅读了这本书的第九十章,通过看这章的知识了解了不少的知识开发某系统的重要前提是:这个系统有谁在用?这些人通过这个系统能做什么事? 一般搞清楚这 ...

  10. <<UML大战需求分析>>阅读笔记(2)

    <<UML大战需求分析>>阅读笔记(2)> 此次读了uml大战需求分析的第三四章,我发现这本书讲的特别的好,由于这学期正在学习设计模式这本书,这本书就讲究对uml图的利用 ...

随机推荐

  1. 简单介绍Excel单元格行列指示的实现原理(俗称聚光灯功能)

    原始出处:www.cnblogs.com/Charltsing/p/CellLight.html QQ:564955427 Excel单元格行列指示的实现原理(俗称聚光灯功能) 单元格行列指示功能在录 ...

  2. dubbo 使用zookeeper 出现 Dubbo客户端调用报错NullPointerException

    现在将网上的方法总结一下 方法一:.https://blog.csdn.net/u011294519/article/details/81810631 dubbo-provider.xml:提供者先扫 ...

  3. Shell命令-文件及内容处理之vi、vim

    文件及内容处理 - vi.vim 1.Linux vi/vim 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 但是目前我们使用比较多的是 vim 编辑器 ...

  4. Flask 框架介绍

    FLASK 框架 框架介绍 简单来说: 小 扩展性极强 官方文档 点这里 Flask 和 Django 的区别 Django 无socke,依赖第三方模块wsgi 路由系统(CBV,FBV) 中间件, ...

  5. CF618G(利用浮点数精度+矩乘优化DP)

    这题真的太神辣,%了一发题解,原来还能这么搞QWQ 设\(A_{i,j}\)表示不加任何限制时,第\(i\)个格子会出现权值为\(j\)的史莱姆的概率,则有: \[A_{i,j}=A_{i,j-1}* ...

  6. 记录一次有意思的XSS过滤绕过

    我的朋友赵一天今晚给我发了一个站,跟我说他xss绕不过去,让我试试.我正好无事,就帮她看看咯. 通过赵一天发我的站点,说实话,我自己学到了很多东西,感谢大佬的教诲.今天分享出来: 站点:xxx.com ...

  7. 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建三:配置spring并测试

    这一部分的主要目的是 配置spring-service.xml  也就是配置spring  并测试service层 是否配置成功 用IntelliJ IDEA 开发Spring+SpringMVC+M ...

  8. pandas的分布式执行框架之modin

    Scale your pandas workflows by changing one line of code       To use Modin, replace the pandas impo ...

  9. Centos 7 最小化kvm部署

    1.检查CPU是否支持虚拟化 sh-4.2# grep -E '(vmx|svm)' /proc/cpuinfo # 若是无任何显示,则表示CPU不支持kvm虚拟化 2.关闭selinux sh-4. ...

  10. Hbase 元数据一致性检查(转)

    最近在学习HBase先关的知识,顺便做一下笔记,以加深知识的了解和掌握. Hbase常用工具 文件检测修复工具 hbase hbck -help 常用选项: -details 显示所有region检查 ...