读Effective Objective C总结(一)

第一章

  1. Objective C是一种基于消息结构的语言,在查找执行的方法和对象时是在运行时处理
  2. 对象的空间分配在堆空间,指向对象的指针分配在栈空间,基本数据类型和结构体也分配在栈空间
  3. 在引入头文件时,尽量使用@Class前向声明来提高编译效率
  4. 多使用字面量语法,但是在取下标的时候,要注意是否有意义
  5. 少使用#define预处理指令,若要在一个文件(当前单元)里使用静态常量,应该这样声明:static const NSTimeInterval kTime,但是这种方法并不能用OC的方法初始化,即必须用常量初始化;若要在工程中使用静态常量,则需要在声明的文件中写:extern const NSTimeInterval abc;在需要实现的文件中实现const NSTimeInterval abc = 5;
  6. emun枚举类型,在需要使用枚举值进行位或运算时用NS_option,不需要时用ns_enum
时间: 2024-10-09 03:33:56

读Effective Objective C总结(一)的相关文章

读Effective Objective C总结(二)

OC编译器的特性:在声明成员变量时,编译器会产生一个硬编码的偏移量,它表示变量距离存放该对象的内存区域的起始地址的长度.OC把这个偏移量作为类对象的一个特殊变量,在runtime时期查找,就总可以生成正确的偏移量. @property 属性:在没有进行任何手动操作的前提下,这个属性第一自动生成了getter和setter方法,同时生成了对应属性"_字段"的成员变量 @property中内存管理的语义: 4.关于使用点语法的原则:在初始化方法或者dealloc中,要用成员变量,不要用点语

读Effective Objective C总结(三)

在collection集合类中如NSSet中是不允许有相同的元素的,但是如果这样写: 这样就会第一个set的输出结果是两个相同的元素,第二个set的输出结果只有一个元素 类族模式:由于在OC中没有抽象基类,因此用工厂模式,比如我们可以用创建UIButton类似的方法:判断某个实例所属的类是否在类族之中,要用isKindOfClass不能用isMemeberOfClass,因为有些类会有内部类型 关联对象的使用,实际上就是在局部空间建立一个通道来共享某些类,如在UIAlert里面共享block 消

Effective Objective -C 第一章 熟悉iOS

Objective-C 使用的是"消息结构",使用消息结构与函数调用的语言关键区别在于:使用消息结构的语言,其运行时所应执行的代码由运行环境来决定:而使用函数调用的语言,则有编译器决定. 运行期组件(runtime component)----动态库(dynamic library)Objective-C是C语言的"超集"(superset),OC中的指针是用来指示对象的.OC使用的动态绑定的消息结构,也就是说,在运行时才会检查对象类型.接受到消息之后,究竟应执行何

[C++11] Effective Modern C++ 读书笔记

本文记录了我读Effective Modern C++时自己的一些理解和心得. item1:模板类型推导 1)reference属性不能通过传值参数传入模板函数.这就意味着如果模板函数需要一个reference类型的参数,必须在模板声明中将其声明为reference,否则,即使使用一个reference类型的变量调用模板函数,类型推导的结果将不带reference属性. 2)constant和volatile属性也不能通过传值参数传入模板函数,但是可以通过reference参数传入这些属性. 3

Effective TCP/IP Programming读书笔记

TCP/IP深入思考 这是我读Effective TCP/IP Programming的 读书笔记和思考,以及做的一些实验.强烈建议后端工程师有空读一读这本书,有些细节的确是我们平时没有注意的,读了最好自己动手做一些实验加深理解. fin的含义 对端发送fin会导致read()返回,但send()照样可以发送,也就是单纯的fin其实相当于shutdown(SHUT_WR). 当对端应用程序崩溃后(未close),本段一直调用send(),对端会返回RST,此时read()会返回Connectio

effective java读书笔记1——创建和销毁对象

今天刚开始读effective java,中文版的读起来很拗口,但感觉收获很多. 另外,这本书的内容是针对Java 1.5和1.6的. 在这里整理一下第2章:创建和销毁对象 的内容. 第一条:考虑用静态工厂方法代替构造器 这一条针对的情景是要获得类的实例时.一般说来,想要获得类的实例,都是通过构造函数(书里叫做构造器). 最常见的构造函数是这样的,没有返回参数,名字和类名相同. public class A{ public A(int a){ //构造函数内容 ... } } 而所谓的静态工厂,

【Effective C++ 笔记】让自己习惯C++

最近在读 Effective C++,想要做点笔记,归类和书中的每个模块一样,但跟模块里的具体顺序可能不太一致.不会对书中每个细节都涉及,主要记下自己觉得重要的内容. What is C++? C++ 是一个多重范型编程语言( multiparadigm programming language),一个同时支持过程形式(procedural).面向对象形式(object-oriented).函数形式(functional).泛型形式(genetic).元编程形式(metaprogramming)

iOS 学习资料整理

视频教程(英文) 视频 简介 Developing iOS 7 Apps for iPhone and iPad 斯坦福开放教程之一, 课程主要讲解了一些 iOS 开发工具和 API 以及 iOS SDK 的使用, 属于 iOS 基础视频 iPad and iPhone Application Development 该课程的讲师 Paul Hegarty 是斯坦福大学软件工程学教授, 视频内容讲解得深入, 权威, 深受好评 Advanced iPhone Development - Fall

iOS开发总结(A0)- Class, variable, enum, method 命名规范及好的做法

参考effective objective 2.0 item 19 use clear and consistent naming 中的建议 1. method name : 适用驼峰命名法,方法名称应尽能表明方法是干什么的,不必担心名称过程,因为在使用时,xcode 会自动补全 - 如果method返回一个值,方法名称应表明这是什么值 - 不要用缩写 - 对于boolean property ,加上is 或者has 前缀 - 不要使用get 前缀 - 名称应易读,尽量像一个自然句子 2. cl